I just discovered that the weiderness I noticed on the CCE MC-1000 while reading the keyboard was limited to some input functions, i.e. gets().
The same effect is present on the v6z80p port, but still haven't found the reason for it.
I still don't know if the effect is limited to my tiny gets() version with cursor emulation and what's causing it.
Here's a fancy workaround for the v6z80p port:
#include <flos.h>
#define LineInput(a) flos_get_input_string(a,255); putchar('\n');