Firstly, the scoping rules were actually changed with the 1997 C++ standard, so the older compilers are simply following the old rules. They are not vendor specific extensions.
Secondly, some people would say that in good OO code, methods are small and focused. In that case a single method rarely needs to contain more that one for loop, so the scoping rules are not an issue.
A couple of points here:
Firstly, the scoping rules were actually changed with the 1997 C++ standard, so the older compilers are simply following the old rules. They are not vendor specific extensions.
Secondly, some people would say that in good OO code, methods are small and focused. In that case a single method rarely needs to contain more that one for loop, so the scoping rules are not an issue.