UNDO does not seem to reliably serialize its restore operations. I have experienced situations in which a single UNDO restores all objects to the positions they occupied after the most recent UNDO. At other times, I have experienced a partial serialization (for example, one UNDO may restore two objects at once, then one at a time thereafter)
For example: In my most recent case, I move three triggers (and ensure I select only one at a time). Then a single UNDO relocates all three triggers instead of just the last trigger moved. This behavior was repeatable until I closed the score and reopened.
Presently I’m not certain how to reliably reproduce this phenomenon.