Do we really need all the mobile phones and IoT devices of the world to be publicly addressable? Is that even a good thing?

If you want to use the internet, you need an IP address.

You can share that IP address by putting multiple hosts on the same local network and using parts of the transport later. NAT was invented because of lacking enough addresses.

CGNAT is a guarantee that you have plausible deniability on the internet. NAT is also a guarantee that you are not addressable from the internet.

It’s a feature.