Suspeito que a resposta está nas coisas que os navegadores fazem, que jmeter
e ab
não.
Ou seja, cookies e javascript (e imagens, até certo ponto).
Da mesma forma, eu diria que seus benchmarks não são realmente representativos da navegação real.
Quando visito um site, não vou à página inicial e recarrego a página várias vezes. Eu vou e clico em muitas coisas diferentes. A distinção importante aqui é que, se o seu servidor está configurado corretamente, muitos dos opcode de PHP gerados, fragmentos de páginas gerados, etc. vão para a memória, então o primeiro hit é lento, mas todos os subsequentes são rápidos.
Você deve tentar encontrar uma maneira de simular a navegação do "mundo real". Uma idéia fora da minha cabeça é executar o Selenium IDE, gravar suas teclas digitadas e pressionadas enquanto navega, e então poder reproduzi-las uma e outra vez, em vários hosts.
A VPN pode ser responsável, mas teoricamente deve causar uma sobrecarga maior em ambos os tipos de conexão, tanto ab
et al. e navegadores.
Suspeito que, se você executar tcpdump
/ wireshark
/ ngrep
etc em seu servidor quando você ab
, verá que muito menos recursos de página são carregados em comparação com o mesmo desempenho com o navegador.