I'm no philosopher, but it's painfully obvious this it the case.
Think about it. If all salaries are posted, the company HAS to match what someone else of an equal role / background / education level is getting paid.
By obfuscating this information, they're lowballing desperate employees in hopes of getting a "sweet deal". I'm not sure of the specific data, but I'd guess maybe 30-40% of all workers are being underpaid.
Some out of need (to pay the bills), others out of ignorance (lack of due diligence / research).
So the question becomes, would you be comfortable if all salaries were searchable within your company?