I lease a car. I don't get to tinker with my car. It says so in the lease. Somehow, I don't see that as a gross violation of my rights. I read the contract and chose it over paying cash and buying the car outright.
In addition, every lease financing company has the same "no modifications" provision, as if they were acting as a cartel. I still don't see that as a problem.
What is the big deal? If you want an unlocked phone, buy one. If you want to finance your phone, you need to adhere to the contract terms, and all the companies have the same terms. It's the same with cars.
Let's try another analogy: say you drive your U.S. car into Canada and the engine shuts off. You get a message on your car's HUD or on your registered cell number or whatever: for a greatly inflated monthly fee (which will be tacked onto your lease back in the U.S.), your car engine will be re-enabled and you can drive on Canadian roads. Or, you can just say "Acknowledge, Keep Driving" and pay a by-the-mile super-duper inflated fee (perhaps totaling $1000 for a road trip from the Bellingham-ish border to Vancouver). If, however, you owned your car outright and had unlocked it, you could pay tolls on Canadian roads as you go, not through some U.S. company, perhaps totaling as little as $10 in an entire month, but because you're leasing your car and have not road-unlocked its engine, you're forced to accept these absurdly high fees.
A lot of people want an unlocked phone and would be willing to finance it themselves, but you notice how the new iPhone comes out only as carrier locked versions, and then, when months later it comes out as a carrier-unlocked version, the price is still a couple hundred bucks more than it maybe ought to be? Other notes: your carriers now won't unlock your phone when you finish your contract, it is illegal for you to do so yourself, and note that they've only been so nice as to carrier unlock you for about two years now, anyways.
I've moved between countries many times, and having to deal with the carrier locking shit is infuriating, especially when, say, I want to update my version of something like iOS to get a security patch but don't want to lose my carrier unlock in the process. (Yes, I also use Android phone sometimes, but alas~.) Granted, carrier unlock is more meant to keep people domestically stuck to one carrier, so that everyone doesn't migrate to T-mobile (Science Bless!).