Yuvevon
Beh io credo che in C++ siano stati introdotti i riferimenti proprio per facilitare la gestione dei passaggi per riferimento degli argomenti ad una funzione...
In realtà sono stati introdotti per l'overloading degli operatori perché farlo con i puntatori sarebbe stato scomodo.

giampa
Ho letto parecchi programmi in C++ e raramente ho visto programmatori adottare questo tipo di notazione.
Sono io che sono ignorante o effettivamente la 'vecchia maniera' era meglio?
Non so che programmi tu abbia visto ma i reference sono molto usati.
Il motivo principale è che un puntatore può essere dichiarato e inizializzato in un secondo momento, mentre un reference pretende di essere inizializzato al momento della dichiarazione.
Inoltre i puntatori possono essere scambiati, i reference no. Sono legati a vita al loro riferimento.

Che sia meglio o peggio giudica tu.
codice:
void swap(int * x, int * y) {
    int temp;
    temp=*y;
    *y=*x;
    *x=temp;
}

int main(int argc, char **argv) {
    int x;
    int y;
    swap(&x, 0);
}
Codice perfettamente legale ma che produce un crash.
(E non tirare in ballo l'attenzione del programmatore. Di puntatori dimenticati ne è pieno il mondo )