I've just tripped over a quite good example of the problems we face in using a 'remove what you don't want' approach. It illustrates how tricky it can be to keep everything up to date.
I want to make a small image with Morphic left in (and lots of other stuff in or out, but irrelevant, I think) so I've been looking at various discard* methods and trying them out. This afternoon I doit'd the chunk of code in majorShrink that dumps all the changes (because I was trying to automatically get rid of projects, there were some still sitting around because some change records were holding on to methods with projects mumble, mumble) and accidentally included the phrase "ScriptingSystem _ nil" Boom. Dead system. Because ScriptingSystem, the global instance of StandardScriptingSystem, has a FormDictionary which is where the icon Form for SystemWindow>addMenuControl is found. No ScriptingSystem, no icon, no understand message, raise exception, try to open notiifer which... you guessed it, wants the same icon!
If you remove Morphic, IconicButton goes and so the problem probably won't occur.
Is the FormDictionary class var of StandardScriptingSystem really the best place for this kind of Form? Maybe the #labelGraphic: code should be able to cope with nil.
Just another little pebble in the path of progress.
tim