Redirection behaves differently in Bash and Zsh when hooked up to a pipe:
bash> echo foo >/dev/null | cat
bash>
zsh> echo foo >/dev/null | cat
foo
zsh>
Bash does what I expect; in Zsh, the STDOUT redirected to /dev/null seems to come back from the dead.
Why this difference? What's going on in each case?