Subexpression evaluation order has nothing to do with traps and everything to do with optimisation. It is not like your CPU requires mandatory exclusive lock to access a particular memory location.
Maybe it's UB only because implementation-specified is too onerous and it didn't seem to be worth defining a bounded "unpredictable result" behavior.