Eu fiz alguns testes rápidos e acredito que seu problema está relacionado à seguinte linha:
allow-query-cache { any; };
Sua configuração não está permitindo recursão ao público, mas ainda permitindo acesso ao cache. Normalmente, um cliente remoto receberia um rcode de REFUSED
quando a recursão não estiver ativada, mas como o acesso ao cache foi explicitamente permitido, o cliente está recebendo a resposta mais específica possível de um cache que não contém essa resposta.
O profissional de DNS em mim recomendaria desativar a recursão + o armazenamento em cache em um servidor autoritativo em todas as circunstâncias em que não haja uma necessidade explícita. Se você estiver convencido de que precisa manter essa funcionalidade, seria melhor aplicar a mesma ACL a ambas. (ou simplesmente remova allow-query-cache
por completo, já que o valor padrão é allow-recursion
)