I think the (unstated) expectation with code navigation tools is that they are best-effort. Beyond your example, plenty of languages allow exotic and dynamic runtime behavior - eval(..)ing user/network input, monkeypatching, etc. - that makes it impossible to know a priori exactly what a call site might invoke.