Nat+uPNP is perfectly capable
Spoken like someone who grew up with NAT being the norm. NAT is terribly broken, and UPNP is even worse. There shouldn't be a need to resort to hack-upon-hack to get networking to work. I long for the day when I only have to worry about routing & firewalling on my network again.
That's not even getting into all the millions of unused IP's being held by the early internet companies.
IP's just need to be charged for on a early basis. Start with $1 per year per ip to EVERYONE who owns an IP's and you'll see the "IP Shortage" vanish overnight.
Great, $1 per IP. 2^32-1 possible IPs... that's only a touch over $4B per year. Who want to bet that Microsoft would eat up all it could, just to have control? Hell, at that price I'd buy a couple hundred just for me. Start talking several thousand dollars per IP per year and you might be on the right track... oh wait, no you're not, because it's an artificial scarcity. (Besides, who would the money for the IP addresses go to? IANA? What would they use it for?)