Ja. Es können Verluste an mehreren Stellen auftreten.
1/ Die ISR läuft und es kommt ein neues Zeichen in der UART Hardware an. 
Wenn das nicht gespeichert werden kann, geht es verloren. Eher 
unwahrscheinlich bei Baudrate = 19,200 bits/s, Quarz = 8 MHz, aber je 
nach dem Restcode kann man das provozieren.
2/ user_application() wird zu selten ausgeführt. Der Puffer 
receive_uart_data ist nur ein Byte gross. Wenn zwischen zwei ISR 
Aufrufen kein user_application() Aufruf ist, geht das ältere Byte 
verloren.
3/ Man sieht die Definition von new_receive_uart_data nicht, 
insbesondere ob es volatile typisiert ist. Der Compiler kann in 
user_application() Code produzieren, der nicht berücksichtigt, dass eine 
ISR diese Variable zu einem beliebigen Zeitpunkt ändert.