Suppose a random Arduino board has its serial pins connected to a random USB-serial bridge (like, but not necessarily, a CP2102). Assume further that the PC at the other end of the USB cable is using a library like jSerialComm (https://fazecast.github.io/jSerialComm/), and the baudrate is something like 250kbps-8N1.
Ignoring for a moment the possibility of bit errors being introduced between the USB bridge chip and AVR itself, is there any actual need to rigorously validate bits received by the Arduino over the USB serial link? Or can it be reasonably assumed that the USB bus itself is essentially error-free (automatically detecting errors and retransmitting if necessary)?
AFAIK, USB has several transmission modes... some automatically detect errors and retransmit when necessary, and others (mainly the bulk transfer modes) just spray bits and leave it up to higher-level software to detect and correct errors. What I'm NOT sure about is which level the Arduino USB serial drivers are actually using ;-).