Here's a simpler and clearer recipe that should show the problem on
any tty or X display:
emacs-28.2 -Q
M-: C-u 9 9 C-q C-j x C-@ M-< C-v
This creates a 100-line minibuffer with "x" on the last line. After
the M-< and C-v, we should be one windowful down from the top, but
instead we've scrolled nearly to the end and the "x" has shown up on
the last line.