most Internet users do not need a first-class address
They would if they could use them, that is, if developers didn't "have to assume large portions of their users don't have direct Internet connectivity". What about we solve that instead?
We have only the most basic level of experience with overlays --- BitTorrent, Skype --- but the experience we've had seems to indicate that if you have a problem users care about, overlays tend to solve them nicely.
How well that BitTorrent and Skype work if everyone's behind carrier-grade NAT? How can Supernodes function?
I don't think I see the reason why IP can't just be to 2020 what Ethernet was to 1990: a common connectivity layer we use to build better, more interesting network layers on top of.
Because it imposes stupid restrictions on those connections that it's supposed to be serving. Like not being able to connect any two arbitrary endpoints.
Your second question is the only one I care about. The answer is, "just fine", especially so if not everyone is behind CG-NAT. Surely you're creative enough to devise ways for two parties on the Internet to rendezvous through a third party server. We already have overlay networks that are NAT-compatible; they're called CDNs.
Isn't the issue here that pretty much everyone would be behind Carrier Grade NATs? For every 1000 or so servers (or CGNs) an ISP adds to a network, 1000 home users must be NATted. I think you can rule out vhosts and the like for NAT traversal use, so that means you need to supply a VPS or dedicated server for this and pay extra for the bandwidth/IP address. Alternatively, you can use 6to4/Teredo/native IPv6 right now as your "overlay network" to address clients directly and avoid all that at the expense of using up CGN mappings. Bearing in mind that Windows 7 already has decent IPv6 support along with Teredo on by default anyway, why bother trying to work around the NAT?
No, everyone would not be behind carrier grade NATs. Presumably, in a dystopic future where CG-NAT became the new norm, the outcome for people like us is that we'd pay extra every month for our Internet service.
The rest of your comment presumes that the only connectivity on the Internet is via IP packets. But that's not true; it's an assumption based on historical patterns of access. Instead, assume the emergence of a routed message relay substrate built out of TCP connections (or even best effort SCTP or some other TCP-friendly datagram service). You'd "connect" to that next-generation Internet by making the same kind of connection your browser does, and having done so would be off to the races.
They would if they could use them, that is, if developers didn't "have to assume large portions of their users don't have direct Internet connectivity". What about we solve that instead?
We have only the most basic level of experience with overlays --- BitTorrent, Skype --- but the experience we've had seems to indicate that if you have a problem users care about, overlays tend to solve them nicely.
How well that BitTorrent and Skype work if everyone's behind carrier-grade NAT? How can Supernodes function?
I don't think I see the reason why IP can't just be to 2020 what Ethernet was to 1990: a common connectivity layer we use to build better, more interesting network layers on top of.
Because it imposes stupid restrictions on those connections that it's supposed to be serving. Like not being able to connect any two arbitrary endpoints.