Оператор присваивания возвращает lvalue, относящийся к левому операнду. Он группируется справа налево. ([expr.ass]). Обратите внимание, что высказывание о возврате ссылки на lvalue не имеет смысла - оно либо возвращает значение lvalue, либо нет.
Оператор запятой выполняет вычисления значений и побочные эффекты из левого операнда, отбрасывает их, а затем делает то же самое для правильного операнда. ([expr.comma])
Так рефакторинге оператор запятой выдаст следующий эквивалентный код:
i = 1; // left operand, value discarded
i = j = 3; // right operand, value preserved
i++;
, а затем рефакторинга назначение соединения будет производить следующее еще эквивалентный код:
i = 1;
j = 3; // rightmost assignment
i = j; // leftmost assignment
i++;
Прошу прощения за 3 дополнительные строки, но есть минимальный предел слов, который, вероятно, не должен применяться в этом случае, так как я считаю, что мой вопрос достаточно ясен. –