Existem algumas vantagens para o verniz. O primeiro que você nota é reduzir a carga em um servidor de backend. Normalmente, armazenando em cache o conteúdo que é gerado dinamicamente, mas raramente muda (comparado com a frequência com que é acessado). Tomando seu exemplo Wordpress, a maioria das páginas presumivelmente não muda com muita freqüência, e existem alguns plugins que existem para invalidar um cache de verniz quando a página muda (por exemplo, nova postagem, edição, comentário, etc). Portanto, você armazena o cache indefinidamente e invalida a alteração - o que resulta na carga mínima para o servidor de back-end.
O artigo vinculado não obstante, a maioria das pessoas sugere que o Varnish tem melhor desempenho que o Nginx se configurado corretamente - embora (e eu realmente odeie admitir) - meus próprios testes parecem concordar que o nginx pode servir um arquivo estático mais rápido do que verniz (por sorte, não uso verniz para esse fim). Eu acho que o problema é que se você acabar usando o verniz, você adicionou uma camada extra à sua configuração. Passar por essa camada extra para o servidor de back-end sempre será mais lento do que apenas servir diretamente do back-end - e é por isso que permitir que o Varnish armazene em cache seja mais rápido - você economiza um passo. A outra vantagem está na frente do disco-io. Se você configurar o verniz para usar o malloc, você não atingirá o disco, o que o deixará disponível para outros processos (e normalmente aceleraria as coisas).
Eu acho que seria necessário um melhor benchmark para realmente avaliar o desempenho. Solicitar repetidamente o mesmo arquivo único aciona os caches do sistema de arquivos que começam a desviar o foco dos próprios servidores web. Um benchmark melhor usaria cerco com alguns milhares de arquivos estáticos aleatórios (possivelmente até mesmo dos logs do seu servidor) para simular o tráfego realístico. Indiscutivelmente, como você mencionou, tornou-se cada vez mais comum descarregar conteúdo estático em um CDN, o que significa que o Varnish provavelmente não o estará servindo para começar (você menciona o S3).
Em um cenário do mundo real, você provavelmente priorizará seu uso de memória - conteúdo dinâmico primeiro, pois é o mais caro para gerar; então pequeno conteúdo estático (por exemplo, js / css) e, por último, imagens - você provavelmente não armazenaria em cache outras mídias na memória, a menos que você tenha uma boa razão para fazê-lo. Neste caso, com o Varnish carregando arquivos da memória e nginx carregando-os do disco, o Varnish provavelmente terá um desempenho superior ao nginx (note que os caches do nginx são apenas para proxy e fastCGI, e aqueles, por padrão, são baseados em disco - embora seja possível usar nginx com memcached).
(Meu rápido - muito difícil, não ter credibilidade - teste mostrou nginx (direto) foi o mais rápido - vamos chamá-lo 100%, verniz (com malloc) foi um pouco mais lento (cerca de 150%) e nginx atrás de verniz (com passe) foi o mais lento (cerca de 250%). Isso fala por si - tudo ou nada - adicionando o tempo extra (e processamento) para se comunicar com o backend, simplesmente sugere que se você estiver usando verniz, RAM de sobra, você pode muito bem armazenar em cache tudo o que puder e servi-lo a partir do verniz, em vez de voltar ao nginx.