Thus spake "Iljitsch van Beijnum" <iljitsch@muada.com>
How about this: when the OS only has an IPv6 address, and an application wants to talk to an IPv4-only destination, automatically proxy the TCP session through an HTTPS proxy. This catches anything that uses TCP and doesn't need to know its own IPv4 address (hard to know if you don't have one) which would be upwards of 95% of all protocols in widespread use. So we only have to fix that other 5%.
If you're going to go that route, you might as well just deploy a v6-to-v4 NAT device. It'll break all the same protocols (though you could add ALG code for popular ones if desired) and, for those that won't, doesn't require any end host or application knowledge of what's going on. I've bounced around some ideas privately on how such devices would work, probably have it defined well enough now to make a draft, and even managed to come up with a snappy backronym for it, but the IETF does not appear to be interested in any v6 transition model that doesn't require dual-stacking every single existing host on the Internet before the first v6-only host appears -- and certainly not one that's an adaptation of that evil NAT stuff. S Stephen Sprunk "Those people who think they know everything CCIE #3723 are a great annoyance to those of us who do." K5SSS --Isaac Asimov