Sono tutti equivalenti, perché in fase di compilazione il codice, tramite i #define, viene riscritto.
Naturalmente scrivendo il codice in questo modo perdi in portabilità, perchè su altri micro i registri potrebbero essere differenti.
Ad esempio passando dalla Arduino UNO alla Leonardo, il codice potrebbe non funzionare correttamente, mentre un digitalWrite funziona in entrambi i casi anche se più lento.
In effetti il core di Arduino è stato creato per aumentare la portabilità del codice, anche se introduce un calo delle prestazioni a causa dei necessari controlli per far funzionare il codice stesso su diversi micro con diverse architetture.