Points taken.Generally, I do not have difficulty differentiating between syntactic elements after viewing them in context, regardless of the naming convention. If you cannot do that... it would be tough to be a programmer, or even a reader of novels.
Recall that C++ has function pointers. Aside from that, I find that it helps me mentally remember the functions and variables. As a secondary reason, it increases the number of possible names in the given scope.
Macro names do not obey the rules of scope. Consequently, Stroustrup, Meyers, Sutter and Alexandrescu all recommend reserving fully capitalised names for macros.
I do not see a problem since named constants are usually within namespace or class scope.