H. S. Teoh:
This is bad because unrelated code is broken just by changing S: it breaks encapsulation. This is just a small example; imagine if a lot of code uses S. Many places may break when S changes just because theyhappen to use the wrong local variable names.
But it's a kind of safe breaking, it doesn't cause a lot of silent bugs. I have found with useful in many situation to reduce the noise in my code.
Bye, bearophile