In fact it should be alpha& not alpha. As all the operators actually returns something you can construct expressions that does more than one assignment, for instance:

int a,b,c;
a=b=c=0;

instead of

a=0;
b=0;
c=0;

reason why you would need it to be a reference instead of a copy, is for those cases where you pass assigned values:

Dosomething(a=10);

It's nothing you absolutely have to do, it's just that it's more convenient if the operators act like they should