Usage based paying is fine and in fact very very appropriate. It does not make sense to charge one person who uses 1000GB the same as someone who only uses 20 or 30 GB to check emails.
The real problem is that there needs to be more competition.
I agree that there needs to be more competition in the provider market, but I think the issue that the author and I have with usage-based billing is that it artificially stifles competition and innovation for a wide variety of industries.
As you say, the 20 or 30 GB user would pay less for using a reasonable amount of email-checking, occasional youtubing bandwidth. But that reasonable number is orders of magnitude higher than what the same user would have used 10 years ago. Innovation in improving user experiences has driven bandwidth usage way up, even for the unassuming customer. Artificially limiting that cap results in stifling innovation.
Why is that limit artificial? Unlike water or power, data transfer is not a reservable resource. Bandwidth is a shared resource, but unused data transfer capacity has zero value.
And as others have indicated in this thread, the largest providers are not on the losing end of the current service bargain. But they are losing their hold on unrelated services like broadcasting. Switching to a usage-based model from a rate-limited model in an industry where startup costs are enormous and providers make a healthy profit is strictly an anti-competitive strategy.
For you and I its fine, but I don't think most people have any concept of what uses their bandwidth cap. I regularly speak to people who are baffled that they're using all their mobile data allowance early in the month only to find out they do things like using YouTube videos as a music player when out.
Either data caps need to be way higher, or they need to go away. I find it bizarre that mobile operators can still get away with 0.5-1GB plans as the standard.
The battery usage tracking features built into Android have come a long way to make it easy to track down which apps are chewing through that limited resource - perhaps it is time to include the same functionality for bandwidth (technically data transfer)?
Actually, billing based on number of bytes transferred has absolutely no relation to the ISP's cost of providing the service. ISPs have a fixed amount of bandwidth to various upstream ISPs. If customers exceed that at certain times of the day (or always), it costs the ISP money to upgrade their connectivity. If the customers aren't exceeding that capacity, there's no additional incremental cost. So if all your customers check email at 9am, that could be more expensive than a bunch of people who are constantly using their entire 1Gbps to run Bittorrent.
Similarly, that's why Netflix and Youtube struggle to load their 5Mbps video streams, while Bittorrent works fine. Bittorrent will simply not get any data from peers whose routes take the packets through the congested link, but use all the others. If there's only one route to a service, that's more likely to hit congestion.
Anyway, if ISPs want to charge for bits transferred, they'd better be upgrading their peering links and charging you based on how you're increasing their costs. Otherwise they're just charging you Because They Can, which is the real reason behind data caps. (What are you going to do, switch to their competitor?)
The real problem is that there needs to be more competition.