Could you explain why it's necessary to visit files that are so unrelated?

Command line GNU Global indicates two .cc files contain the function I'm searching on, and neither has dependence in one direction or the other on the files CEDET opens.  CEDET opens unit test .cc files in completely unrelated areas of the source tree.  The only things in common that I can identify are the high level namespace and the fact that they're in this large source tree together.

To make semantic-analyze-proto-impl-toggle in particular perform better, you could just ff-find-other-file and look for the tag in that one file.  It would be fast without GNU Global, so more readily helpful to general users.  If that doesn't find the tag, then perhaps it could fallback to the existing means.

Unfortunately, the semantic-symref command suffers the same intolerable processing time due to opening of unrelated .cc files -- but only when GNU Global is enabled via semanticdb-enable-gnu-global-databases.  Performance is quite reasonable with the default grepping technique.  Using 'global -r' at the command line to find references is fast, so GNU Global does not seem to be the source of the trouble.