I'm not against making salaries public, especially up in the "professional staff" range: it might very well be that person A is worth $100k to the company and person B is worth $65k. In fact, if I were person B's manager, during review time I might be found to say to them: look, person A is a big performer around here and makes $100k. Are you happy with your performance that I've valued at $65k? If so, fine: I'm happy with it too, and you don't have to feel like you need to be doing more. But if you want the same kind of money that person A is making, here's what you gotta do ...
And of course the only difference currently might be negotiation: person A asked for and got $100k. The only way that can continue to work is if salaries are private; this is one way that workers get co-opted into the scheme, because it's like this: ok, we'll pay you that, but you gotta keep your mouth shut, because if your cube-mate finds out, she'll hit the roof.
The reason she'd hit the roof is that she knows that you're not worth it and she'll want the same arbitrary treatment. So it's not just a management ploy: it's also a ploy by those who get more than "average" who want to keep it that way. If salaries were public, special deals would be much harder to come by.
/jordan