IP Addresses cannot at once be scarce enough to charge for and
non-scarce enough that scarcity is a non-issue.
IPv4 scarcity is an issue, at least for customers. Whether it's
an issue for large ISPs is a different question.
The cable ISP isn't really charging per-IP addresses; rather it's
charging per-residence. The motiviation is not the scarcity of IP
addresses, but the scarcity of available dollars per customer -
in other words, they have an assumption that the amount of income they
can get from residental Internet service is more-or-less a constant
times the number of residental customers served.
So they use flat-rate, per-residence pricing to attract the largest
number of residential customers. But they get annoyed when the
service is shared over multiple residences. They'd get just as
annoyed if the mechanism were IPv6 instead of NAT.