Regardless of my comments on not using pointers. 

I think we should solve this elsewhere but in AST classes exposed to Snow Crash users. What about extending / changing the (internal) symbol table instead of doing this, sort of public change? 

Does it makes sense?

Alternative: Ideally the blueprint AST should expose the fact that there was a reference used in blueprint. Unlike the situation now where it is opaque to the one who observes the AST whether the actual payload content from exploded reference or it was actually written in the blueprint. However solving this would be probably more (conceptual work) and will probably lead to a change to the AST (which you are in a way doing here as well), both in Snow Crash and downstream (bindings and  [AST serialization](https://github.com/apiaryio/api-blueprint-ast))