Assignment expression in C++ returns its right operand (A possible bug)

Short answer: 'as if' - if you can't observe a difference between this
and the 'real' semantics, it is a valid implementation. Is there a
difference in observable behavior of the executed code?