ping usa o sistema de resolução de nomes da glibc, chamado Name Service Switch. Isso usa o arquivo /etc/nsswitch.conf para saber onde procurar para resolver um nome para um IP. A linha hosts: neste arquivo representa uma ordem de preferência para cada serviço. Por exemplo, files representa o arquivo /etc/hosts local, dns usa o arquivo /etc/resolv.conf para entrar em contato com um servidor DNS e mdns usa mdns.
No entanto, nslookup não o usa. Ele fala diretamente com o servidor DNS especificado em /etc/resolv.conf e, portanto, não pode usar mdns .
Mas não posso responder sua última pergunta. Se você tem os dois mdns e dns em /etc/nsswitch.conf , mesmo com mdns primeiro, ele deve primeiro tentar resolver o nome com mdns , então, se não houver resposta, use dns .