Right, overloads and macro indeed make it more complex. Maybe a "references in function calls" filter, i.e., without checking the function signature, could be a first step, that could be improved upon later on.
Now that I think about it: Someone could also create a shorthand alias-reference
int& i = MyLongVariableNameIDoNotWantToRepeatEachTime;
or, similarily, a pointer
int* i = &MyLongVariableNameIDoNotWantToRepeatEachTime;
that you'd have to track as well, if you really want to catch all writes.