Actually, in this particular case, if we wanted, we could fall back to trying TM if no goto happens using LSP (but even in this case I wouldn't do it because in bug reports we wouldn't know if it was the TM's or LSP's problem).
Why would the user want to goto the wrong place? If LSP says the name is not visible going to the definition/declaration of some random thing invisible at that point in the code, but which happens to have the same name, doesn't make sense.