I get a warning emitted about incompatible types withe an alias.
$ avr-gcc -c -mmcu=atmega328p -DF_CPU=16000000 -O -o usart.o usart.c
usart.c:480:14: warning: 'uart0_putc_' alias between functions of incompatible types  char(char)' and 'void(char)' [-Wattribute-alias=]
480 |         char uart0_putc_(char data) attribute ((alias ("uart0_putc"))); // alias for uart_putc that returns passed argument unaffected by omitting any existent rule
|              ^~~~~~~~~~~
usart.c:315:14: note: aliased declaration here
315 |         void uart0_putc(char data)
|              ^~~~~~~~~~
I'm not sure if this is due to something missing on my part.