Ok, i get your point.
(and don't get me started on whether Outlook is ready...)
Since my first posting, and my first experiences with the EA GUI, i've found more of the docs, and read more the forums posts about how it is hard to 'undo' when there are many database interactions.
I agree it is hard. However, I have also built such systems, and although one must keep a fair amout of data, it is certainly possible to build an undo for such things. simple proof: after using the GUI to cause some unforseen database action, I (as a human) can find some sequence of GUI actions to get things back to where they were (usually...) It is generally easier for the program with access to the internals to recreate the state...
But we are missing the point: the EA GUI does not readily discriminate between things that are undoable and those that are not. For example: in a sequence diagram, if i nudge a message up or down a bit, I can hit ctrl-Z and it moves back, but if i nudge it too far (it gets in front/behind some the message) then everything reformats and it is not undo-able. This makes the UI frustrating rather than delighting; it breaks the "law of least astonishment".
In contrast, I know when I'm pushing the Save or Send button in Outlook; but with EA it not always clear.
I don't mean to quibble about whether it is difficult vs impossible to implement reliable undo in EA, only to remind any implementors that this is a critical feature, and should not be blown-off lightly.