Hmm, I am not sure it is a good idea to do this kind of things. It appears you're really tampering with the symbol tables. This is sort of similar to symbolic references (which are very much frown upon). Or, maybe, this kind of construct should be reserved only for special cases where you want to extend the language, but perhaps shouldn't be done for regular coding. You don't show enough for me to be able to suggest an alternative approach, however.
I am not saying that this is bad, I am not quite sure, but I am just questioning or perhaps only wondering whether this is a good idea. I would be quite interested to know what other monks think about that.