If IP6 doesn't save us, then perhaps a policy of forcing ISP's to use RFC1918 addresses and NAT for their subscribers would help. It's ridiculous how many ISP's use dynamically allocated public blocks for their subscribers and then firewall them anyway.
Good luck trying to play Call of Duty or any other peer to peer video game behind a carrier NAT. ISPs are going to love the customer support calls they'll get from people whose xboxes don't work anymore.
It reassures me that there is commodity hardware out there that won't work behind a NAT.
Ten years ago I would have assumed they'd just jump to NAT; back then, setting up cross-network PC games was still mostly the realm of geeks (besides Battlenet-based games).
Something that I wish the "let's just be happy and NAT everyone" crowd would understand is just how different your run of the mill linksys NAT is from a centralized and managed NAT, which we already have to deal with in some places (like some apartment flats).
Among the marginal annoyances that we run into with centralized NAT are
-there is no UPNP IGD. We don't strictly need UPNP, but it's nice when it's there because it's so much more reliable than STUN.
-tenants share mapped port space so there's no guarantee that protocols that require multiple mapped ports will be able to get some number of them (think BitTorrent or 16 player peer to peer video games).
-UDP mappings might expire after some ridiculously short interval, requiring another STUN set-up.
-many of these devices allow admins to set policies for mappings. You can be sure that someone is going to be playing your 16-player game behind a NAT managed by some eager beaver who decided to limit NAT mappings to 14 per flat.
-STUN just might not work very well at all, in which case you're stuck with a special-case connection through a packet repeater.
-Some will even do evil shit like fiddling around with your packet payload. One lesson I learned was not to ever include a player's RFC1597 LAN ip address or any binary data that happens to be the same as their LAN ip address in network packets. There are actually commercial NAT routers that will peer into your packet payloads and change anything that appears to be your LAN ip address to their own WAN address, probably in a an attempt to fix a NAT-broken protocol.
Commercial NAT devices are truly evil. It wouldn't be a stretch to say that the primary 'value-add' for the majority of network library middleware packages in use in the video game industry today is NAT traversal for weird commercial NATs in apartment buildings.