I could only reproduce this so far when I copied your example verbatim... but there was an error in test.cpp that was making the tagging parser veer off into the bushes. When I put in the missing '#' in front of the 'include', it works as expected, giving all of the references. Removing/adding the "using namespace z" statement would change the behavior because it has an indirect effect on where the parser lands when it tries to recover from the parse error.
It's possible something similar could be happening in your real source though, something causing a mis-parse in the file where your function call reference is not being picked up. The most common problem we run into is with source code that uses the preprocessor macros heavily, especially if the preprocessor defines are used to spruce up or hide syntax. They're a pain, but can usually be fixed by adding preprocessor definitions to your C++ configuration so the tagging parser knows what sort of replacements to do.
So take a look at one of the source files where the calls aren't being tagged as references. I'd start right above the namespace declaration first, and look for anything suspicious there; and if there's nothing there, then start looking before the function declaration that your call that isn't being picked up. (and by suspicious, I mean anything that's loaded up with preprocessor macros, or doesn't look like vanilla C++).
Let us know if you don't find anything you can distill into a test case for us. There may be a way to try to figure out the location of a parse error using the debug output from the beautifier... but it's a bit of a long shot.