Yes I know I thought about it too but I never liked the idea that sending a message would create a method or a class. May be I'm too old fashioned :)
Is there another way to do it?
To "define" a class nothing is required (you must write "source" code in a piece of paper/aTextFile). If you want to create an object (like a class) you need to DO something, ... e.g. send a message.
Working with OOLanguages, only definition is possible (an required), because execution is not allowed when you are "there"; a computer/machive will do the work later in time (evading object creation if possible :-( ). It is like writing a letter to God, talking about ideal objects...
Working IN smalltalk, computation/production is a side effect of a working environment. When you are in the environment, you must do(evaluate) actions and create classes/species (if it is possible at the moment of evaluation). It is like working in real world.
The "doIt" instead of "defineIt" has important implications in systems development/creation. Is is not a good/bad idea; it is a requirement to send messages. It is possible becasue the receiver is near your fingers and at the same time. Building open systems (instead of closed/ideal systems) let you lower the risks of working declarativelly.
hope this help, Ale.