Just because something works doesn't mean it's not buggy. I don't know
about Emacs, but XEmacs's TTY code has had data-losing bugs before, and
worked on heaps of platforms until Linux 2.6 came along, when it started
doing exactly what we see Emacs doing now, losing the end of compilations
(but for a different underlying reason). It can happen.