A resposta é certamente específica do sistema operacional no sentido de que nada está impedindo que um determinado sistema operacional se comporte de maneira diferente. Não há nada necessário sobre a consulta do cliente DNS de vários servidores que impediria uma implementação do sistema operacional de tratar as consultas DNS de maneira diferente do que estou descrevendo aqui.
Dito isso, o exemplo de como o Linux pesquisa os nomes DNS deve ser representativo de como a maioria dos sistemas operacionais em uso hoje em dia o faz.
Aqui é um bom post descrevendo o comportamento em detalhe, bem como uma maneira de configurar algo parecido com o que você pediu.
A ideia geral é que, por padrão, os servidores DNS secundários / terciários são usados apenas em seqüência se o servidor DNS primário atingir o tempo limite ou apontar para um endereço IP não roteável. Mesmo que o servidor DNS primário diga "esse domínio não resolve", ele não passará para perguntar ao próximo servidor de nomes. Ele trata qualquer resposta válida para a consulta como uma razão não para passar para o próximo servidor DNS na lista.
Uma possível maneira sã de configurá-lo para que os endereços locais sejam resolvidos primeiro, mas ainda usar o DNS ou OpenDNS do Google em vez do servidor DNS do seu provedor, é configurar seu roteador ou caixa LAN (qualquer que seja o gateway da Internet) use 8.8.8.8
como seu principal servidor de nomes. É claro que a própria caixa de gateway deve estar executando um servidor de nomes, e deve ser configurada para responder a consultas DNS para nomes de host locais na sub-rede privada - mas se falhar em resolver a sub-rede local, imediatamente para o DNS do Google. Este é o melhor dos dois mundos.
Outra maneira de fazer isso é configurar diferentes servidores de nomes para diferentes interfaces de rede. O Windows permite que você faça isso por padrão; o artigo no link acima descreve uma maneira de fazer isso configurando a implementação do servidor DNS BIND9 usando as diretivas forward
e forwarders
.