For example: If you set up a layout that can have a flex value associated with it, set the flex value, then try a new layout of a kind that does not have a flex value associated with it, decide you don't like the new layout and switch back to the original one (manually, not with "undo"), the flex value is gone.

This is solely an example -- the problem happens all over the place, and I assume this behavior is actually by design in that it is due to a lack of state in the program and an arguably appropriate discarding of inapplicable property/value pairs, so that once a change has been made, due to the parameters being discarded, there is no way to revert to the old state. But, by design or not, it can be time consuming to reset all those parameters, or potentially cause bugs due to not finding them all.

Note that I assume "undo" does not suffer from this problem (haven't checked), but "undo" does not suffice when you aren't always doing things in order or during the same session.