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.