Resetting the USB receve buffer in the receive routine.
CAT-ting large files (~200k) to /dev/ttyACM0 will result in some byte loss on the far side.
This is not due to rx fifo overflow, but some other loss mechanism.
Smaller groups of data (on the order of what we expect from a gcode sender) work fine.