That one is not really a bug. More of a "I-did-not-tell-you-something-was-wrong-with-your-code".
Gotos have a max range of 0xFF, or 255 bytes. Your code between the goto and return is 0x106 and 0xFA bytes respectively. The second one is in range and works. The first one is out of range and is clipped 0x100 bytes. There should probably be a warning when the code is processed like if you have a bad label.
For your specific example, since you are merely returning, and not doing anything else after the jump, I would strongly suggest replacing Goto with Return, even if this were working correctly (or rather, more correctly). Goto is two bytes while return is only one.
Course, if you were wanting to do something different, like muting the music before exiting, this would not work very well. For code this massive, you would probably have to use up an arbitrary pointer. I cannot think of anything else that can do a jump larger than 0xFF bytes for Location Events.
---T.Geiger