Bem, não tem como escrever isso em poucas palavras mas vou tentar.
Todas as soluções tem problemas.
DNS:
Você perde granularidade.
Caso haja um bloqueio, você precisa liberar para todos, não tem como liberar um acesso específico para um determinado grupo como você pode fazer com o Squid.
É mais rápido pro cliente, utiliza menos recursos do Firewall e você não faz MITM, evitando assim problemas de acesso como acontece usando Proxy.
Squid:
Nesse caso, eu não usaria WPAD, eu usaria PAC distribuído por GPO diretamente para os navegadores, sem incluir IE ou Edge pois estes usam o PAC do Windows que não teria proxy.
Dessa forma, todas as aplicações funcionariam, como aplicativo do Itau, receita federal, atualizações do Windows e etc.
Usuarios usariam o Firefox ou Chrome, e estes por sua vez seriam instalados pela GPO já com o PAC incluído, entre outras políticas.
É possível configurar o navegador pela GPO, para que não faça cache do arquivo PAC, portanto assim possilibitando que você altere o PAC e peça pro cliente com problema de acesso a fechar e abrir o navegador para testar o acesso novamente.
Vale ressaltar aqui que você teria que criar uma política para o IE e para o Edge lá na GPO, limitando o uso para alguns sites.
Essa forma de trabalhar é bem mais complicada, necessita de manutenção sempre pois os domínios mudam, sites mudam, redirecionamentos acontecem e etc... O custo de manutenção é alto, pois precisa sempre atualizar o PAC, analisar o que foi bloqueado e etc.
Tendo em vista o que foi dito acima, eu sugiro que você use o que for melhor pro seu ambiente.
Você precisa de quantos grupos no proxy? Se for apenas 2, um libera tudo e outro filtrado, você pode usar o DNS que é mais rápido, dá menos problema.
Aponte os clientes que quer liberar tudo para outro servidor DNS.
Aponte os clientes que quer filtrar pro nxfilter.
Se você tem diversos grupos, como por exemplo marketing, diretores, recepcao e etc, com diferentes políticas de proxy, aí só com proxy mesmo, e eu faria da maneira acima.
Os 2 juntos, eu não vejo motivo além de aumentar o custo e a demora na manutenção.
Imagina ter 10 clientes, cada cliente com 100 usuários, e você precisar analisar o bloqueio, se foi no proxy, se foi no DNS, qual domínio por na whitelist ou no bypass pelo PAC e etc...