cd
não está fazendo nenhuma alteração em seu processo pai, porque cd
não é um processo.
É um shell embutido - uma construção que a maioria (cada?) shell tem que mudar seu contexto de diretório.
cd
no bash mudará seu cwd no bash. cd
on zsh fará o mesmo em zsh. É o bash / zsh que está fazendo isso. E eles estão mudando seu próprio contexto.
Dito isto, não acho que seja possível que um processo filho altere o ambiente dos seus pais. deve ser teoricamente possível acessando diretamente a memória, mas estou assumindo que estamos falando de cenários da vida real: -)