Are my assumptions correct?
Não é bem assim, configurar o nginx infront of Tomcat seria praticamente o mesmo que configurar o nginx com o PHP rodando com CGI usando o nginx "default" php-fpm.
Você usaria os excelentes recursos de conteúdo estático do nginx ao mesmo tempo em que encaminha e retorna o conteúdo dinâmico do seu Tomcat.
Where does the bottleneck occur: creating pages or serving them back to the client?
Comparado a apenas rodar o Tomcat: provavelmente em lugar algum, você estará aliviando o Tomcat para fazer a parte Java enquanto o nginx lida com todo o resto. Dê ou pegue o tempo extra necessário para o nginx solicitar e veicular a página do Tomcat.
Will proxying Tomcat with nginx give me any of nginx performance benefits if I'm going to be using Tomcat to generate the dynamic content?
Sim.
Also, since it is a compiled language, it will execute faster than PHP (it is implied here that Java is around 37x faster than PHP)
Não acredite em tudo que você lê na internet;)
Embora uma linguagem interpretada provavelmente sempre falte no desempenho do código compilado, um cache Opcode geralmente é resgatado e coloca o código em um estado semi-compilado que tende a acelerar imensamente as coisas.
Não na extensão do código compilado, mas perto o suficiente.