Which One First?
Even if you have IPv6 working perfectly, some policy decisions still need to be made by dual-stack implementations. The most obvious is what to do when you perform a DNS lookup and you get both A and AAAA records back? Should you try to use IPv4 or IPv6 first?
There's no good solution to this, unfortunately. Some services will offer limited functionality over IPv4. As a trivial example, you don't get to see the dancing turtle if you point your IPv4 web browser at kame.org. Protocols like peer-to-peer filesharing or video conferencing systems that require end-to-end connectivity may have problems with NAT'd IPv4 users, but be fine with IPv6.
On the other hand, IPv4 connectivity is likely to be more reliable, and may be faster. If the host is using Teredo or 6to4, then the IPv6 traffic has to go through several extra hops, and may be routed over several networks that aren't the most direct route. You also have the overhead from the encapsulation.
Some operating systems will try to prioritize IPv4 ahead of IPv6 only when IPv6 is using a tunnel, but that doesn't help when using a service that has some[md]but reduced[md]functionality over IPv4, only when using services that have full IPv4 support or no IPv4 support.