未定義になるのは副作用完了点と副作用完了点の間で、変数の値が
2回以上変更されているようなケースです。x*=x; は式の先頭から、
副作用完了点である;の位置までに x の値は1度しか変更されて
いませんので未定義には当たりません。