The problem is not in the routers or operating systems, it's in the applications.
Programmers do not yet know enough about IPv6, nor do they have the drive to learn about it.
Programmers do not yet know enough about IPv6, nor do they have the drive to learn about it.
In the consumer router space, the level and quality of IPv6 support is far from perfect. Even the third-party firmware is spotty. IPv6 works fairly well on OpenWRT trunk, thanks to 6relayd and odhcp6c, but the best you'll get from DD-WRT is a kernel module and a pile of scripts in the wiki.
Which is why this is solved inside existing frameworks so programmers don't need to meddle with it.
Want a socket to "www.google.com"? Sure have it. Is that IPv4 or IPv6? You don't know, and you shouldn't have to care.
Just like Unicode, this should already be a solved problem in mature frameworks.