Du hast einen Vor- bzw. Nachteil, der nicht unerwähnt bleiben soll:
Da der verbaute Chip (ATmega32U4) USB direkt auf dem Microcontroller unterstützt, fällt der FTDI bzw. ATmega16U2 des UNO weg, der die USB2Serial-Umsetzung gemacht hatte. Somit wird für die (Debug-)Verbindung zum PC nicht mehr der Hardware-UART (pin 0 und 1) benötigt und dieser ist frei für die Ansteuerung von irgendwelchen Devices. Wo bei einem UNO zwangsweise auf SoftwareSerial ausgewichen werden musste, wenn ein Device nur per UART-Schnittstelle kommunizieren konnte, ist dies beim Leonardo nicht mehr nötig. Der Hardware-UART ist bei ihm über das Objekt Serial1 zugreifbar, während die Debug-Schnittstelle weiter als Serial-Objekt zur Verfügung steht.
Da bei vielen Sketches die Hardware-UART-Schnittstelle fest mit "Serial" angesprochen wird, kann das notwendige Änderung mit sich ziehen.
Auch ist beim Leonardo in der setup()-Routine nach Serial.begin() der folgende Code anzuraten:
while (!Serial);
Dieser wartet auf die abgeschlossene Initialisierung der seriellen Schnittstelle am USB-Bus und verhindert, dass die ersten Zeichen der Debug-Meldungen verloren gehen.