A razão pela qual todo mundo coloca o nginx (ou outro servidor como o Apache) na frente de seus servidores de aplicativos é que todos têm conteúdo estático, como imagens, CSS e JavaScript, e requisitos estranhos que são exclusivos de seus aplicativos.
Seu servidor de aplicativos (CherryPy, gunicorn, whatever) é otimizado para executar seu aplicativo e veicular sua saída. Embora o servidor de aplicativos possa também veicule conteúdo estático, ele quase nunca é bem otimizado para essa tarefa, já que é secundário para o objetivo principal do servidor de aplicativos. (Alguns servidores de aplicativos também ajudam a reduzir e compactar seu CSS e JS, de modo que o servidor da Web na frente possa atender a esses recursos ainda mais rapidamente.)
Além disso, o servidor da Web real pode fazer muito mais do que a veiculação de conteúdo de alto desempenho. Coisas como armazenamento em cache, manipulação de cabeçalhos, reescrita de URL, geolocalização e muitos outros recursos que apenas inchariam o servidor de aplicativos sem um bom propósito.
Normalmente, você só executaria o servidor de aplicativos ao desenvolver o aplicativo, quando você é o único usuário, e o desempenho não é um problema. Mesmo que o seu site tenha pouco tráfego, você gostaria que ele fosse mais rápido, certo? Sites de baixo tráfego que são lentos geralmente não crescem em sites de alto tráfego ...