...
It is reasonable for scopes that are not visible to each other to have duplicate identifiers. For instanceexample, two functions can each have a local variable with the same name because their scopes cannot access each other. But a function's local variable names should be distinct from each other as well as from all static variables declared within the function's file (and from all included header files.)
...