I've explained this before, so please do search the forum for some other "Go to Reference" related threads.
The answer boils down to the fact that our symbol analysis is not a full compiler, simply a fast parser that grabs declarations. The cross-referencing is basically an inverted word index on the source files that are scanned.
We do plan on implementing a sophisticated algorithm in a future release to narrow down the number of files that we look at when collecting references to a class member, by taking the intersection of the set of files that contain the symbol's name, and the set of files that contain its class name, and all it's parent classes (and there's even more to it than that...). It is a very naive understanding of object-oriented to suggest that we only look in the files that directly reference the symbol's class name. This is actually, a *very* hard problem, especially when you factor in type inference. Keep in mind that our symbol references engine is built to work for tons of different languages, not just Java.