So, you'd be fine with your ISP being the gatekeeper for which operating system(s) and version(s) you can run on your computer?
The U.S. system where operators are such gatekeepers for mobile devices is an anomaly. It doesn't need to be so, and it is not so elsewhere.
I don't understand the overall picture of the U.S. telecom industry in the first place. Slow speeds, data caps, bad coverage, high prices and control freak carriers.
Kinda. My Xperia Z didn't update to Kitkat when it was available. I bought it at JB-HIFI and therefore it came with Telstra junk on it. In /system/build.prop there's a setting called Customisation Number. So I used towel root and changed it to a stock number and the system updated to Kitkat and removed the non-uninstallable Telstra junk.
Telstra didn't update because of a battery issue. Which was true... the battery died quickly if you left the GPS on. I didn't use the GPS much so I left it off. (This issue has since been resolved, then telstra enabled the update)
Considering I didn't even have Telstra as a carrier. it was because JB-HIFI is a Telstra reseller that this happened.
It's because the Manufacturer agreed to only update when Telstra updated. It's all through the Sony update software.
a big reason is that you actually need to test whether the newest version works well. Even the jump from 4.4 to 5 has some performance hits. Not to mention when we get beyond vanilla android, custom home screens and stuff are extremely sensitive to base OS changes.
Also, the phone companies themselves need to put out the updates, which isn't happening a lot of the time (or with 6 month+ delays).
Even if it weren't a contractual obligation, I can't imagine, say, the AT&T store loading a phone right now with iOS 7