As VPN is fairly common these days on desktops; any chance that nscd
can
grow such an interface? It really doesn't have to be more complicated
than, for example, NetworkManager poking it to say "for *.redhat.com use
these nameservers".
That is not really what nscd is for. It's really just for caching (and not
only for network things).
Running a full DNS server on a simple desktop seems like, well, a lot
of
overhead not to mention security concerns...
dnsmasq and the like are not "a full DNS server". Something like that
designed specifically for this limited use seems like the right way to go.
Another option is to write a configurable proxy server using a simpler
protocol, a la lwresd. Implement an nsswitch client module and then you
can use it either via nscd or directly. It's up to the implementors to
decide if a private protocol is better or worse than just using DNS protocol.