Punto de secuencia dentro de operadores de asignación

Tomemos, por ejemplo, el operador de asignación compuesto específico^=. Esta página de stackoverflow dice que la modificación del operando izquierdo puede no haberse realizado después de la evaluación de^=, y haciendo así el códigoa ^= b ^= a ^= b Comportamiento indefinido. Pero este no parece ser el caso. La norma dice en 5.17 [expr.ass] que

En todos los casos, la asignación se secuencia después del cálculo del valor de los operandos derecho e izquierdo, y antes del cálculo del valor de la expresión de asignación.

Hay dos puntos clave en esta declaración. 1) ¿Qué hace el sujetoasignación ¿se refiere a? En mi opinión, se refiere solo a la modificación del operando izquierdo. 2) ¿Qué hacecálculo del valor de la expresión de asignación ¿se refiere a?cppreference dice que se refiere a devolver la referencia a lamodificado objeto (énfasis mío).

Como conclusión, el operando izquierdo ya debería haberse modificado después de la evaluación de^=, lo que es una contradicción con lo que (la mayoría) piensa la gente. ¿Me estoy perdiendo de algo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta