Hi Andrew,
I think that (unfortunately), you are right, this could indeed happen
I'll fix the documentation. Sadly, the undefined order of evaluation of function arguments is a constant source of subtle and hideous bugs. And, as far as I can see, defining the order of evaluation as left-to-right would not close any significant optimization opportunities, but would make life for programmers a lot easier.
Quite a lot of people have complained about this many times in the past. See
this comp.lang.c++.moderated post for one example.
Thanks for pointing out this bug!
Cheers,
Michi.