The history and undo code was written before the record package; but someone introduced a DEFMACRO UNDOABLY macro to do the work. But cached macroexpansions shouldn't depend on load/run/compile time values.
* First steps to make UNDO to work again
* make sure the right SETQ (CL vs IL) is used
* The change surfaced a irritating warning about the variable presumed to be SPECIAL