A pure cap that counts all traffic the same wouldn’t be, though.
Say your ISP gives you 100mbit/s = 1.08TB/day ≈ 30TB/mo. On gigabit that’d be 300TB. While you do have some heavy torrenters they are outliers.
Now I assume everything but TV/movie streaming is a rounding error for average Joe. Netflix says 1-7GB/h depending on quality. Average user watches ~3.2h/day (wtf is wrong with people!) but that’s ~100-700 GB/mo. Now that’s between 0.033%-2.3% of downstream bandwidth.
Of course, people generally watch TV at the same time of day, so it gets more complicated to provision resources. But there’s also no question that pooling bandwidth (over-provisioning) makes sense to reduce costs. The question is more about how much congestion is acceptable, and I wouldn’t trust shitty monopolistic companies to behave. But if you can handle eg Super Bowl or a World Cup final without degradation you’re probably good the rest of the year?
They over-subscribe because they know not every customer is going to be using up that full 2gbps 24/7.
Now, you can argue that an ISP SHOULD provision that way, with the expectation that their customers are going to be using the full connection 24/7, but that would raise the cost per customer a LOT, and I don't think people want to be paying for an ISP that provisions like that. It would be a lot more expensive per customer, and it would end up with a lot of the bandwidth going unused most of the time.
If the average bandwidth used by customers goes up, it will require the ISP to pay for and maintain more circuits and cost more money. We can argue there are better, fairer, ways to limit usage, but it is simply not true that every customer downloading a lot more doesn't cost the ISP more money in the long run.