Thus spake "Brian E Carpenter" <brian.e.carpenter@gmail.com>
That doesn't cover us for the day when we have true IPv6-only apps with no reptilian memory of IPv4. I think I'd rather avoid the application having any knowledge of IPv4 at all. If we're going to do this horrible thing, let's do it 100%. (As Iljitsch knows, I'm playing with some thoughts on this, but they aren't quite ready for public ridicule yet.)
Will code like that ever exist? The changes to the sockets API (e.g. getnameinfo() and getaddrinfo()) has made it so that modern apps aren't any more v4-aware than they're v6-aware; they've become version-agnostic, not separately aware of v4 and v6, unless they have a specific reason to know.
The problem I think you're indirectly referring to is NAT awareness, and most of the problem there is going to exist in v6 with stateful firewalls even if we do manage to avoid creating a NATv6 world. ALGs are simpler when you only have to inspect packets, not mangle them, but they're not going away, and end hosts/apps can't get away from coping with administratively-imposed reachability problems.
S Stephen Sprunk "God does not play dice." --Albert Einstein CCIE #3723 "God is an inveterate gambler, and He throws theK5SSS dice at every possible opportunity." --Stephen Hawking