Hallo Michael,

rein codemäßig bringen beide Varianten keinen Unterschied.

Aus

UCSRB = _BV(RXCIE) | _BV(TXCIE) | _BV(RXEN) | _BV(TXEN);

wird

ldi r24,lo8(-40)
out 42-0x20,r24

und aus der (1<<x) Variante genauso. Das heißt beide Konstantenausdrücke werden vom Compiler aufgelöst und dementsprechend richtig ausgerechnet übersetzt.

Auch beim Zugriff auf Ports macht es keinen Unterschied welche Variante benutzt wird.
Sowohl PORTB |= _BV(PB2); als auch PORTB |= 1<<PB2;
wird zu: sbi 56-0x20,2

Viele Grüße
Jörg