Why is C++ preincrement addition uniquely different from javascript, C#, etc.? (Sequence points?)
Solution 1:
Because (1) you never need to write cumbersome expressions like i = ++i + ++i
and (2) C and C++ are all about not giving away performance, the behaviour is undefined.
(Although C++17 does define some more of these class of expressions).
On (2), different architectures may be able to optimise increments differently. That would be given away - with no real advantage gained - if the behaviour of expressions such as yours were defined.