HDLC, SDLC & CAN and others use bit stuffing to create unique bit stream markers.
Current high speed things like HDMI, DVI, SATA, SAS use the 8b/10b method to do DC balance, framing and some error checking.
These are all serial streams.
In case you do not know HDLC & SDLC were world spanning networks long before Ethernet which also has unique framing marks.
With out hardware based framing in place you get into a mess where a low level has to create two or more streams of data to get a higher level with data transparency.
Intel hex is just a way of converting 4 binary bits to a byte at the cost of 1/2 the possible transmission speed.
Each ASCII character in the data becomes two bytes.
So for a normal serial interface you have is it normal or is it intel hex mode and it often takes a human to decide.
You get similar problem with terminal control, color and formating. For a long time each terminal had their way of doing things. This lead to UNIX having TERMCAP so as to have a standard way for a Unix program to work with many different terminals.
You also had problems with printers
All because you could not say simple things
You will also find base64 where two bytes become three to send/receive.
You have Unicode that uses the 8-bit to code normal ascii or Unicode.
The base problem is that you have a USART with out a way of sending control/status in stream separate from the data and maintain transparent byte data.
The 9-bit mode some micro controllers can use is a work around.
Where the parity bit is not used as parity.
Have not found this to work with PC's
Cure can be as simple as not using a USB to serial converter.
A USB device can send/receive packets. You just need to extend actual packet interface to user of data.
The start and stop of a radio transmission can be used to mark packet start/stop.
To handle binary transfer between computer and terminal
ZMODEM, YMODEM, XMODEM and others were often used.
This allowed a computer acting like a terminal send/receive files.
For computer to computer using USART and wanting IP
you have PPP & Slip as layer 2 protocols.
And you have all these due to trying to using a UART for other then sending simple set of bits that has no idea of larger structure.
C