Symbols currently have the nice property of being guaranteed (at least
I hope this is right) of always being the same object (due to being
immutable), allowing a simple comparison of address to see if there
equal and using very little memory. Aren't symbols also kept separate
to the main heap, which the gc owns/runs?

Other then space, what could be gained from gcing symbols.