This is a good idea . . . and I was almost about to ditch my idea of editing the source code for the GNU linker in favour of your idea, but your solution has one drawback:
- - - Objective files and static archives need to be recompiled - - -
If I only edit the linker, then big projects only need to be re-linked. No need to recompile all the object files, nor the static libraries.
Here's where I am so far on editing the GNU linker:
https://github.com/bminor/binutils-gdb/compare/f11786a1951932217d348f3739e8deb31975a355...healytpk:linker-vtable:master(The code for managing the list of symbol strings is thrown together and probably contains a bug for some corner cases, I'll fix/replace it before finalising)