p0145 was initially trying to sequence function arguments left to right, that failed, but the backup plan was voted in. As far as I understand the backup plan, it introduces sequencing between arguments, but indeterminate rather than left-to-right.
I believe that was the intent because
It doesn't seem that the changes to the wording actually achieved that effect, or at least are not clear that they did, as exemplified in this stackoverflow discussion:
http://stackoverflow.com/a/39238441 about the permissible order of calls to a(), b(), x(), y() in
f(a(x()), b(y()));
5.2.2 used to say
> When a function is called, each parameter shall be initialized with its
corresponding argument. [ Note: Such initializations are indeterminately sequenced with
respect to each other —end note ]
and
> [ Note: The evaluations of ... the arguments are all unsequenced
relative to one another.
now both notes (one calling argument evaluation unsequenced and the other calling parameter initialization indeterminately-sequenced) are removed and it says instead
> The initialization of a parameter, including every associated value computation and side effect, is indeterminately sequenced with respect to that of any other parameter.
but this is only talking about parameter initializations, which were already sequenced before the change (per removed note). Argument evaluation is not mentioned any more (and anything not mentioned is unsequenced per [intro.execution]/15). I thought argument evaluation was part of parameter initialization, but the removed note makes me doubt that's the intended interpretation.
So are argument evaluations still unsequenced (permitting x(), y(), b(), a() in f(a(x()), b(y()))) or are they indeterminately-sequenced, permitting only x(),a(),y(),b() and y(),b(),x(),a(), and how does the wording reflect that?