We work around that with things like NAT, but as we have more and more devices on the internet we need a simpler solution. That simpler solution being moar bits in the address.
Until it doesn't. NAT is fine for a home or company network, it'll soon be getting not fine for mobile and other networks. Using NAT you are not simply hiding the identity of individual devices you are sacrificing concurrent connections per device for fake extra address space, that will run out eventually with more and more devices being connected (you might say “my smart bulbs don't need to access the public network” but your smart bulb manufacturer appears to think differently!). IIRC Linux defaults to a range of 32768–60999 for port mapping so about 28,000 maximum concurrent connections per public IPv4 which seems a large number but if you have many users using P2P protocols (potentially hundreds of connections per host) or many many just web browsing (tens per host that is currently active) that can soon run out and connections start failing in a manner that is hard to diagnose at the client end (it just looks intermittent) and near impossible to diagnose at the far end.
And it is a pain for true P2P comms even at one level, never mind nested NAT if you and your ISP are both doing it.
NAT doesn't help for needing more publicly addressable addresses on the other side either, it only helps with your side of the problem. You will eventually have to move off IPv4 because services will start to be IPv6 only. Yes there are ways to essentially reverse-NAT around that (for instance HTTPS+SNI is now viable in most cases as you are only excluding really ancient devices) but those techniques also add complexity & latency and won't work for everything. Nor is the issue simple numbers: the distribution if IPv4 blocks is not at all smooth and working around that adds complexity to routing (yes large orgs have released some of the v4 allocations back for reuse, but that is far from as simple as just saying “hey, you over there, these are now available to use”.
If your reason for using NAT is security then be aware that what security/privacy you do get is only by accident and probably not as effective as you think anyway, certainly against meaningful tracking.
It has the opposite of value to me. I don't want most of my devices to have more of a public IP than they need to. In fact, it being technically possible for my lightbulbs to have public IPs sounds horrible.
The power company does not need me to care, or understand. But they should probably try to keep the lights on while they do the change.
Sure, but I'm reasonably intelligent and well versed in the subject matter. If a random person asks about replacing the transformer, you have a fine response. If someone who worked for ConEd asked, then you should answer them.
Then you haven't been looking particularly hard, or at all [1]
[1] https://www.ripe.net/publications/news/about-ripe-ncc-and-ri...
The reason is simple: IPv4 addresses are getting more rare and therefore more costly.
Ironically I think the answer here is the same: not the end customer.
Most normal people don't really need a faster CPU and wish they could still be hanging on to their beloved iPhone 4, but the developers writing software for it need customer phones to be faster, so everyone has to spend money on it.
For IPv6, not everyone needs private addresses, especially in the age of IoT. Even though NAT is not a safety feature, it's probably the main reason we only have millions rather than billions of exposed IoT devices in Shodan.
And in the age of privacy violations (and done, again, by people who write software), sharing an IP with my neighbours because of Carrier-Grade NAT doesn't sound like a bad idea to me at all anymore.
As for the lack and cost of IPv4, I'd bet that the main reason for that is not because of domestic customers, but rather because of companies, other institutions or even countries holding onto or using IPv4 addresses unnecessarily like they're candy.