zshenv é de fato lido por todas as instâncias do shell, mas é lido primeiro , antes de qualquer outra coisa. Seu $PATH provavelmente está sendo redefinido em zprofile ( ~/.zprofile ou /etc/zprofile , ...).
zshenv não é um bom local para definir seu $PATH . Ele pertence a zprofile , que tem o trabalho de configurar o ambiente no login. Definir variáveis de ambiente em zshenv significa, entre outras coisas, que elas serão prejudicadas ao executar scripts zsh ou zsh em uma única sessão.