Você entendeu mal o significado de subshell. Uma subshell não é um processo completamente novo, mas uma bifurcação do processo existente.
Se você chamar zsh explicitamente, por exemplo,
zsh -c 'echo "$$ $(date)" >> $HOME/.debug.zshenv'
então o shell se bifurca, chama execve() e por isso inicia um shell completamente novo que faz a inicialização novamente.