Another proposal would be that the history of operations applied to objects is not unique... That each object has its own history of operations that can be undone.
So for example if I have been working on object A and I have applied 20 operations to it... But then I work on object B and even on C... The moment I realize that I have to undo operations and on object A, so that it adjusts to object C... I can undo the operations on object A, without having to touch B or C...
That each object has its own history