Hi!
What do you mean by latency?
pin_a0=low
_usec_delay(10)
pin_a0=high
TXREG=255
The time which the serial start bit is delayed more than 1 Tcy I would call latency. The time that follows then is the time required for transmission, which is at least 10/baudrate (8 data plus 1 start plus 1 stop bits).
The first byte written to TXREG is going right through to the Transmit Shift Register (TSR), while the second byte stays in the (user accessible) TXREG, going automatically to TSR once that is free. If you want to send a third byte, the library has to wait for TXREG to be free, or data would be overwritten and lost.
So yes, if you're sending three bytes, the library will have to delay data, either by blocking the program (serial_hardware) or by caching the data in a software buffer (serial_hw_int_cts).
I haven't seen a library induced latency before. I presume the 80uS you've seen are more related to the number of three bytes and the baudrate than to the 32MHz the controller is running on.
Greets,
Kiste