A1
Você ativou AUTO_PUSHD ?
Pode ser ativado com setopt autopushd ou set -N .
Por isso, cd está adicionando à pilha de diretórios.
A2
Eu suponho que você esteja executando dirs -v , não apenas dirs ? (Eu acho que -v é necessário para listar um por linha).
Por que não apenas dirs -v | head ? Ou dirs -v | less ? (Ou dirs | tac como qqx sugere.)