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.
Why would they allow you to upgrade the OS when they can sell you a new phone and a new multi year contract. It's a pretty basic strategy.