The DNS server should respond with the IPv6 address it received the query on, since that will be what's in the socket structure that the packet came in on which it'd use for the reply.
Oh okay - I didn't know that. Presumably by 'should' that's something you're aware of rather than assuming in a theoretical sense?

Having multiple IPs per DNS server, especially if the routes to each interface take a different path and use a different LAN, would make it more robust.
Sure, and in the case of multiple IPv6 tunnels from different providers it is very common to have multiple delegation/glue records for what is the same host. However, I've never seen the same name with multiple addresses to the same nameserver before.
To clarify, this is quite common:
example.com IN NS ns1.example.com
IN NS ns2.example.com
IN NS ns3.example.com
ns1.example.com IN AAAA 2001:DB8::1
ns2.example.com IN AAAA 2001:DB8::2
ns3.example.com IN AAAA 2001:DB8::3
...where 2001:DB8::1 and 2001:DB8::2 are actually the same server (with routes via different tunnels).
whereas I have never seen this before:
example.com IN NS ns1.example.com
IN NS ns3.example.com
ns1.example.com IN AAAA 2001:DB8::1
IN AAAA 2001:DB8::2
ns3.example.com IN AAAA 2001:DB8::3
Thinking about it, I suppose it makes little difference either way to my initial query re source address determination... but I'm sure there must be an effective difference between the two configurations, no?
Mathew
[Edit: Scrap my 'never seen it before' position - I've just seen one on an old NANOG thread
here! (The thread strays ambiguously to other matters) The configuration has since changed but I think it'd be unfair to read anything into that!]