Eu tentei a função com zsh -f
(que eu deveria ter feito antes de postar ...) e descobri que ela funcionava como esperado. Algo mais está causando esse problema, por isso estou fechando essa pergunta quando for possível.
EDITAR :
Para os interessados em saber qual era a questão e como ela foi resolvida, veja abaixo.
Eu usei o framework zsh ZIM que usa vcs_info
para verificar se o diretório atual é usado pelo git ou não. Isso requer uma chamada para git. vcs_info
em si não chama git diretamente, ao que parece, não por padrão.
No entanto, graças a ft on #zsh no Freenode, adicionando
zstyle ':vcs_info:git:*:-all-' command =git
para ~/.zshrc
depois que o framework foi criado, corrigiu esse problema.