> it's because expressions separated by a comma can be evaluated in any order (I believe).
Expressions separated by the comma operator are always evaluated left to right. On the other hand function arguments (which are separated by comma) can be evaluated in any order.