That sounds like a side affect "The Teredo Behavior". I think that's a bug, because the behavior is supposed to only prefer IPv4 if you have only a Teredo address. But it appears to require that a non-teredo IPv6 address appear on the interface that your DNS server lives on, even if you have a native IPv6 interface on a different interface.
I wonder what would happen if you put a connection specific DNS server entry pointing to your internal or external DNS server on the NIC which has the IPv6 address? I bet it'd work then too, even if you didn't have an IPv6 on the LAN interface (I don't think windows has any idea what interface is LAN and which isn't).
Reminds me of the hoops one has to jump through to get Teredo to actually do IPv6 on Vista and Win7 with any application. You basically have to put a fake IPv6 address which isn't in the Teredo range on the NIC your DNS server is set on, then add back in the IPv6 default route through teredo. After you do that then suddenly it'll start using IPv6 addresses, otherwise only ping, and visiting IPv6 sites by address works.
This is 'cause the default behavior with Teredo requires that the application request to use Teredo, otherwise the DNS API only returns IPv4 addresses. I also recently read something which leads me to believe that there may be a windows firewall setting (NAT Traversal) which if turned on might have the same effect. But not sure about this.