This came straight from the official documentation. I don’t understand why v(2) should be evaluated before v(1) in the first example although technically it shouldn’t matter (unlike short circuit operators)… It just seems counterintuitive.
The evaluation order is undefined and could be changed. You should probably not be counting on side effects from expressions in comparison chains. IIRC, @jeff.bezanson did it this way because it could be implemented slightly more efficiently/easily. That said, I would support making the evaluation order defined and guaranteed left-to-right.