If nobody knows how much they could be making, they can never really be sure of what they are worth.
At a company that size, it probably saves Corporate billions, while serving the average employee not at all.
Management absolutely has an incentive to hide salary writ large so that is definitely part of it. But employees who earn more than their comparably-titled peers also have an incentive not to disclose their salary. If position X gets paid, at the median, $200k a year with a $20k SD, and you get paid $275k a year in position X, the only things that will happen by you publicly discussing your salary are: 1) you'll be called a liar; 2) your peers will get jealous; 3) the best peers who may have been content prior, will either negotiate a higher salary and leave less in next year's budget for you, or leave for other positions making more money, resulting in a brain drain from your team.
Salary discussion overall only benefits low and mediocre performers. High performing ICs have very little incentive to discuss it.
The absence of this allow employers to employ people below their true value, which is not only unfair working conditions, but also unfair in that some people get paid vastly more for equivalent (or worse) performance, depending only on awareness of worth and negotiation skills.
Public pay figures will not only tell you what you can expected to be worth, it will also tell you what the company truly values and rewards (as opposed to PR bullshit). Opening up salary figures means a company must face its own contradictions, if any.
I also have seen how people react when they realize there might be a huge pay variation for same titles - it's not good for anyone. I avoid conflict as much as possible nowadays, so it makes me more reticent. I pretty much redirect direct questions even from family because of that. None other than me and my wife knows how much I make - that's the max comfort level I'd ever get to I suppose.