Respostas:
Vou me concentrar no comportamento lento do cliente e em como sua configuração lida com isso, mas não fique tentado a acreditar que esse é o único benefício. O mesmo método que beneficia clientes lentos também oferece benefícios para clientes rápidos, manipulação de SSL, tratamento de picos de tráfego e outros aspectos da veiculação de HTTP na Internet.
Gunicorn é um software de pré-bifurcação. Para comunicações de baixa latência, como o balanceador de carga para o servidor de aplicativos ou a comunicação entre serviços, os sistemas pré-bifurcados podem ser muito bem-sucedidos. Não há custo em acelerar um processo para lidar com a solicitação, e um único processo pode ser dedicado ao tratamento de uma única solicitação; a eliminação dessas coisas pode levar a um sistema mais rápido e eficiente em geral, até que o número de conexões simultâneas exceda o número de processos disponíveis para lidar com elas.
Na sua situação, você está lidando com clientes de alta latência pela Internet. Esses clientes lentos podem amarrar os mesmos processos. Quando o QPS importa, o código do aplicativo precisa receber, manipular e resolver a solicitação o mais rápido possível, para que possa passar para outra solicitação. Quando os clientes lentos se comunicam diretamente com seu sistema, eles amarram esse processo e o tornam mais lento. Em vez de manipular e descartar a solicitação o mais rápido possível, agora esse processo também precisa aguardar o cliente lento. QPS eficaz diminui.
Lidar com um grande número de conexões com pouquíssimo custo de CPU e memória é o que os servidores assíncronos como o Nginx são bons. Eles não são afetados da mesma maneira negativa por clientes lentos porque são hábeis em lidar com um grande número de clientes simultaneamente. No caso do Nginx, rodando em hardware moderno, ele pode lidar com dezenas de milhares de conexões ao mesmo tempo.
O Nginx na frente de um servidor de pré-bifurcação é uma ótima combinação. O Nginx lida com a comunicação com os clientes e não sofre penalidade por lidar com clientes lentos. Ele envia solicitações para o back-end o mais rápido possível para lidar com esses pedidos, permitindo que o back-end seja o mais eficiente possível com os recursos do servidor. O back-end retorna o resultado assim que o calcula, e o Nginx armazena em buffer essa resposta para alimentá-lo para retardar os clientes em seu próprio ritmo. Enquanto isso, o back-end pode passar a lidar com outra solicitação, mesmo quando o cliente lento ainda está recebendo o resultado.
@blueben está certo. Um exemplo específico e comum do que pode acontecer quando um proxy reverso não é usado é que um banco de dados back-end pode executar identificadores de conexão de banco de dados onde não há proxy e há um pico de tráfego. Isso ocorre porque as conexões demoram a ser liberadas, como o @blueben descreveu.
Um primeiro instinto para ver os manipuladores de banco de dados se esgotando pode ser oferecer suporte a mais conexões com o banco de dados. Mas, ao adicionar um proxy reverso na frente do aplicativo, você verá o número de conexões necessárias ao banco de dados para alta carga diminuir significativamente e se estabilizar - o nível de conexão com o banco de dados não aumentará tanto quando houver um pico de tráfego.
O Nginx também é ótimo em fornecer conteúdo estático, armazenamento em cache e várias outras tarefas HTTP, permitindo que o servidor de aplicativos se concentre em ser um servidor de aplicativos.