This idea has a certain appeal, but consider the following functions:
void overloadOne(const std::string * const foo) { }
void overloadTwo(std::string *foo, int bar) { }
when calling the first function "foo" cannot be modified, but when calling the second function "foo" may be modified. To really make this idea work reliably VA would have to consider how the variable was being passed to the function.
Unfortunately this is not something we can currently do, since VA does not know which overload you are using when you call this function. This is why when you use alt-g on an overloaded function you are offered all of the overloads, and need to select the one you want to jump to.
We are looking into making VA understand overloaded functions, but this has not yet been done.