Pessoalmente eu uso o verniz como um proxy reverso (que eu acho muito mais para a tarefa, ao contrário do Squid que era não nasceu como um proxy reverso) e tem recurso avançado para redirecionar o tráfego para diferentes infra-estruturas de conteúdo, dependendo do que você quiser (round robin, expressões regulares, balanceamento de carga ... é realmente poderoso). Se você estiver interessado, posso elaborar mais sobre o assunto.
Sobre a segunda parte da questão (usando um proxy apenas para alguns endereços), você pode usar um arquivo PAC tão simples quanto:
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*.mydomain.com"))
return "SOCKS 10.0.0.1:1080";
return "DIRECT";
}