I'm fine if upper references to not-yet-defined variables aren't supported but I would very much prefer that this triggers an error rather than does something not defined. In my opinion undefined behaviors in programming languages are lazy and don't help anyone, neither the language users nor the language implementers. Users may (more often than not inadvertently) write code that relies on undefined behavior. That code is then at the risk of breaking after a language update. Implementers are at the risk of inadvertently changing the undefined behavior and thus break the code of all users who started relying on it.
Here, signaling an error when an upper reference is initialized with a not-yet-defined variable would be easy. Why not do it?
Philippe