Each of these can be considered on their own:
3 years is a long time. If I had no intention of working with anyone in that industry and the contract was worth quite a bit, I'd consider this but usually I'd push back on this unless it was very valuable.
This is not good. If you are charging by the hour, you should charge actual rather than how large a change is. If you aren't I guess you could define what a minor change is, but I wouldn't want to get into this with a client. The manner in which you bill is really up to you, and this language doesn't mean anything anyways.
That's just ridiculous
What I think when I read these terms are: this client is nervous and is trying to protect themselves from getting screwed. Many inexperienced clients (and landlords and other types) do this - they want to reduce risk by adding protection for themselves into the contract. Unfortunately this erodes the fairness of the contract and usually antagonizes the vendors.
For example, if HE terminates you have to give back your deposit. But, if YOU terminate does he still owe you outstanding funds? A good business deal needs to be fair or it wont work.
I would try talking to the client and asking why they wanted these terms, especially number 3. Maybe this is just a matter of inexperience and trust.