Sharing a fast connection is awesome, you save tons of money, but one problem arises. One of your neighbors sets up a server and hosts web sites for three or four of his friends, then another neighbor leaves Netflix streaming 24/7 in two different rooms, when he's not even home. That's quite wasteful, but what does he care, he's only paying a tiny fraction of the cost. You get less of the shared bandwidth because dumbass is streaming HD video to an empty living room.
If only there was some solution which involved, oh, I don't know, shaping the traffic to each subscriber based on a refilling bucket of tokens or something. Maybe they could pay for it by not having to pay for extra complexity in the billing and customer complaint system.
There is no perfect solution to that, but about the best solution we have are caps. Unfortunately ISPs haven't been clear about what the caps are for different pricing tiers. Most consumers probably don't know how many GBs they want, so that's part of the problem.
What is good for ISPs in an environment which lacks competition has nothing to do with what is good for the customers.
The ISP's solution is *designed* to increase revenue with fines created because the ISP does not provide real time usage information to the customer and the customer is subject to unsolicited traffic (incoming UDP among others) anyway. You know how telephone companies charge customers for unsolicited calls and text messages? It is the same thing.