Capita spesso che la particolare sisttassi di copia confonda le idee. Personalmente ho adottato da tempo la seconda sintassi, proprio per chiarire meglio il concetto che si tratta di copia e non di assegnazione.
Comunque se proprio si ha voglia di fare le pulci sulla questione, c'è da dire che per default il C++ crea implicitamente un operatore di assegnamento e un costruttore di copia, quindi si potrebbe parlare di overloading prendendola molto alla larga. In realtà tu definisci un operatore di assegnamento "sovrascrivendo" quello implicito del compilatore, e fai il sovraccarico del tuo operatore di assegnamento con un altro operatore di assegnamento sempre definito da te.
Si potrebbe dire che sono sfumature, ma in C++ sono importanti anche quelle.