All RS232 style serial devices from the dawn of time have this feature. It is a bit odd if you are really only getting one byte each time unless you are running at a very low baud rate but it is entirely normal for a block of data sent at one end to arrive as several interrupts at the other. Robust serial comms is not as simple as many people think. As you point out you need headers and byte counts or headers and trailers to identify blocks of data, and it is non-trivial to design code that can can cope with data corruption and missing bytes - particularly if they are a header, trailer or byte count.