Se você quiser remover o diretório atual do array $cdpath , eu simplesmente usaria
cdpath=(${cdpath/(#s)$PWD(#e)})
(#s) e (#e) têm a mesma finalidade que as expressões regulares ^ e $ em "normal", ou seja, início e fim da sequência. Por favor, note : Estes precisarão de setopt EXTENDED_GLOB para funcionar!
Se você precisar de um comando externo,
cdpath=(${cdpath/(#s)${$(some_command)}})
deve funcionar.
Caso de teste:
$ setopt EXTENDED_GLOB
$ cdpath=(/foo /foo/bar /bar)
$ pwd
/bar
$ cdpath=(${cdpath/(#s)${$(builtin pwd)}})
$ print -l $cdpath
/foo
/foo/bar