Известно что присваивания используют right-association rule, т.е. это
x += y += z
компилируется как
x += (y += z)
А почему собственно не как
(x += y) += z
? т.е. с левой ассоциацией.
Если бы был бы "левый" вариант то можно было бы например в JS писать
var vec = [];
vec += 1 += 2;
т.е. chained push()...
В чём сермяжность правой ассоциации?