$ zsh --version
zsh 5.9 (x86_64-pc-linux-gnu)
$ uname -r
6.8.7-arch1-1
I can't reproduce with the current git master.
% echo $ZSH_PATCHLEVEL
zsh-5.9-437-ga66e929
% uname -vr
5.15.0-102-generic #112~20.04.1-Ubuntu SMP Thu Mar 14 14:28:24 UTC 2024
% xxd -ps -l3
0a
0a
0a
% STTY={-icanon,-echo} xxd -ps -l3
0a0a0a
% STTY={-icanon,-echo,icrnl,inlcr} xxd -ps -l3
0d0a0a
% STTY={-icanon,-echo} xxd -ps -l3
0a0a0a
%
The only way I can something similar happen is by running the last two xxd commands without allowing a prompt to be printed in between. Zsh only resets the terminal at each new prompt, not at every command exit.