I don't think it does. The problem with cutting, pasting etc has never been due to the code FS2 and FRED share so much as the fact that FRED needs to be able to type check the entire tree on every single cut and paste to make sure that it is still valid.
Which is basically my point - that kind of sanity check is best done with a rulebook and the tree, not by trying to run it (and dying).
Your last point is the crux of course - that rulebook has to be gleaned from the FS2 code because otherwise it's a pain in the proverbial to maintain.
At present I don't understand the interrelationship very well so I'm not sure how easy that is to do.
Regarding Undo:
As a point of architecture, we should assume that everything should be possible to undo, then make specific exceptions. Filtering stuff out within the Undo stack is much easier than filtering stuff in!
The granularity for all movements should obviously be that a 'step' is the time between mouse-down and mouse-up. (Same as for Photoshop et al)
However, to do that pretty much all of FRED-specific code has to be redone.
- For me, step one is Learn C++, as I'm currently a Delphi programmer.
I do need to learn C++ for work anyway, so I'm intending to try part of this (an Events editor) as a learning project.
To help with that, I'd greatly appreciate it if someone can point me to (or write) a spec for the Events section of an FS2 file.