When a supposed security update of docker suddenly started applying NAT to IPv6 traffic our production systems broke in four different ways. We had to scramble to disable NAT again to get things running reliably.
Very often NAT is the problem and IPv6 is the solution. Porting NAT to IPv6 is extremely misguided. When I have deployed IPv6 to my systems the last thing I want is for some software update to reintroduce the problem IPv6 is there to fix.
Dual-homing is a challenge to be addressed. Neither NAT nor BGP is the right solution for that. But I have never seen a real-world scenario where this is what was holding back IPv6 deployment. It should be fixed of course, but I think the first step towards that is to open eyes to what benefit you already get today when doing dual-homing with some IPv6.
RFC 6555 was originally introduced to ensure IPv6 deployment would not be held back by a small percentage of networks with broken configuration. As far as I know this has been supported by all mainstream browsers since around 2010 and has in fact satisfied that purpose.
It can however also be used as a way to do dual-homing. In the simplest form you get internet connectivity from one provider with IPv6 support and one provider with IPv4 support. Just make sure each router is configured to only support one of the protocols and then connect the LAN ports of the two routers together. Then you have dual-homing with much faster failover than provided by BGP and without the connection drops caused by NAT.
In the simplest form this only gives you dual-homing for dual-stack sites. But if you add NAT64 on the internet connection with IPv6 support, then the result is a network with dual-homing even for reaching IPv4-only sites.
I really wish more people would deploy dual-homing that way, as I think it can be more reliable than dual-homing based on BGP or NAT. And if enough people see the advantages of that form of dual-homing, then maybe we can convince software developers that we need to extend it to supporting IPv6 on multiple connections. Currently there are many customers who struggle to find even one ISP with IPv6 support, which might be why dual-homing across two connections with IPv6 has not received enough attention.
IPv6 explicitly supports receiving addresses from multiple providers. There are two parts that are missing in making that truly good dual-homing. Routing needs to take source IP address into account such that outgoing packets are delivered through ISP who assigned that source address. And a successor to RFC 8305 needs to specify that browsers try multiple sockets bound to different local addresses. And of course we need to get support for this in other software and not only browsers.