you could be declaring functions or variables that have the same name as something somewhere else, if you were to call said variable or function it would be ambiguous which one the compiler should be using.
I’ve also heard this slows the compiler somewhat, as instead of using specific components of the namespace you are essentially copying and pasting the whole thing which the compiler is forced to read when you run your code.
The funny thing about this is that I’ve seen instructors using it fully on Udemy which is a two fold problem. They get into the habit of using it and people learning see it and start to feel its great or learn it as the way it should be done. So, its good to know, but not necessarily do.
Like you say though, best to avoid as c++ naming is really the pits and it increases the chances of compiler errors.
In Java for example you can have variables named OK in 100 methods in the same class and one global in each class with no extra work and tie in 100 others classes each the same and it won’t matter one bit. But in c++ naming is more likely to be a problem.