sorry, but IMO your answer is ambiguous and vague. My cpus are 16MHz AVR (e.g., Nano, Uno or Mega 2560), and as already stated, Zero (M0), Due (M3), and esp8266.
moreover, about
" (BTW, my msg buffer size is 64 bytes) What does that matter? It does not prevent you from sending more or fewer bytes."
it was you yourself who stated
"But be aware that USB can have a surprisingly low throughput for small data packets - i.e. less than 64 bytes.", so now you even contradict to yourself.
But eventually you may not know reliable data, and if so, please let people answer who know more exactly how to set Serial.begin() best of all for max performance together with the Raspi.
@all: Let me rephrase my question.
1st, I am using Serial.begin(), not SerialUSB.begin().
2nd, Serial() UART has to be started for Arduinos by an exact clock rate by Serial.begin() which probably has to be somehow a certain divider of the cpu clock speed (CMIIW).
And 3rd, I already read that 1Mhz UART clock at a 84MHz Due cpu leads to 5% transmission error which is too much.
So after all, the UART clock speed actually seems to matter.
And finally also on the Pi the serial (USB) communication has to be started at an actual clock speed by serialOpen() (in wiringSerial.h), matching the UART clock on the Arduino.
So for the quickest possible UART communication by Serial() on Arduinos via USB to the Raspi USB (dev/ttyACM0) :
16MHz AVR (e.g., Nano, Uno or Mega2560) <=> Raspi,
Zero (M0) <=> Raspi,
Due (M3) <=> Raspi,
and esp8266 <=> Raspi
What exactly has to be chosen?