So the problem 3 have found is that some people do just use too much data and a significant chunk of this is via tethering. So they have to do something about this as it is an unexpected cost, which is their right as a company (obviously special circumstances are needed for people mid-contract)
The simple thing would be to restrict the amount that could be tethered, rather than to cancel/put a charge on tethering.
So leave it as an unlimited data contract, but only 2GB of that per month can be via tethering.
The 99% of people who don't use more than that via tethering have the convenience of tethering but at very minimal extra cost to the company.
The alternative for me as a customer who only wants to use tethering for reasonable amounts (<1GB/month, i.e. not a big strain on the bandwidth) is to pay per month to use small amounts of data, which I've already paid for on a different device, or just not tether at all.
As for the small percentage who do use it for heavy tethering, congrats on exploiting this generous loophole for so long, but now you'll have to pay what you always should have done. Don't complain