I believe `(window-body-height)` does not account for non-zero `line-spacing` amounts. This causes `(window-body-height)` in graphical Emacs to report values larger than the number of lines of text that can render on the screen.
This affects programs like vterm.el and others that rely on `(window-body-height)`. In my particular case, when I ran `man` and `less` from vterm.el, it rendered things above the top "fold" of the screen.
When I tried to reproduce these issues with `emacs -nw`, everything was fine. I imagine this is because `emacs -nw` disregards `line-spacing`.
I'm happy to share more information to help someone reproduce this issue.