I know there's recent legislation on it, but for a long time there were carrier locks on phones sold with plans and they were the only one you could have on it. Before LTE, CDMA phones couldn't switch carriers but with the grace of heir current carrier as it was on the carriers end. There was no removable SIM. I'm not sure if modern CDMA phones still require explicit requests to the carrier regardless of the LTE SIM as I'm on GSM which has always had them.
Modern android even has a SQL database file in their phones for things like carrier-locked-down tethering and limits. So if you have a version of android that doesn't have these bit-flags getting sent with packets or has new ones, I'm not sure your carrier would allow it on the network. Of course you can root it and make all data, even tethered, appear like it's coming from the android browser. Carriers seem to have a lot of hooks in the OS is all I'm saying, blindly flashing is unfortunately asking for trouble.
But I don't understand how the carrier is involved at all. What if you update your phone on WiFi so you aren't using the carrier at all. They can't intercept that so how are they to blame for whether you can upgrade or not?