Why should Symbol behave differently from other classes ?
Symbol is an abstract class, just like String. It has no instances. Doing
to Symbol what you won't do to SequenceableCollection sounds unfair.
You already have two ways to collect #allSubInstances, the slow one (4
words before) which scans the whole object memory, and the fast one
allSymbols which just consult the well known registry of Symbols.
Yes, for maintaining unicity of symbols, a global registry is necessary, so
please why not use it rather than bending the meaning of a generic
reflexion message ?