Different people have different preferences, and some managers probably have mistaken beliefs about what is good for them and their employees.
From a negotiation standpoint, the employer (generally) wants to hire, or give raises to, the employee at the lowest possible total cost. Whereas the employee (generally) want to be hired, or get a raise, at the highest possible total cost. Where the cost analysis may not be the same for each side.
Now assume that that all other things being equal, and no information about salary rates are known, the employer's range for salary is $80-$100k, and the employee's range for salary is $70k-$90k. In this situation, the employer would love to hire at $70k, which they may be able to do if the employee doesn't know any better. Now, imagine that the employee had information about the employer's salary range, then the employee would smartly shift their salary range knowing that the employee was 'low'.
The same applies to raises. If an employee has no information about other coworker's salaries, then the 'standard' raise of 3-4% might be acceptable. However, if another coworker has a significantly higher salary, with similar responsibilities, then the employee may ask for a higher raise. They may or may not get that raise, but it's at least a possibility. One which the employer is likely to not want to have the employee know about.
The worst case scenario for the employee is to find out they are making significantly more money than their coworkers, in which case they have no further bargaining power.
So really, the question of whether or not it's a good idea to share salary information to other current or future coworkers comes down to whether or not you're on the 'employer' side (where additional salary information can only move your costs upwards), or on the 'employee' side where having no transparency about salary can prevent you from getting the best salary possible.
Since the difference between having salary transparency or not is so high, it behooves most employers to subtly discourage salary talks. So you end in a place where it is a possibly a violation of federal law (for the federal government), or possibly state law[0], to prevent people from talking about salaries, but at the same time people will almost always only post their salary information anonymously.
You are also only addressing the workers with below-average wages (who may be qualified for higher pay) when you say that secrecy helps employers. Half of all employees have above-median wages, so I would assume that transparency could be used to bargain them down, as the below-median workers were helped in bargaining-up; I am not sure what the net effect would be, and don't know why we should assume it goes one way or the other.
I am not an advocate for wage transparency or opaqueness, because I don't know which way the effects go for anyone. I am also an advocate of deregulation, and abolition of most laws, simply because there are so many that nobody knows what is illegal; this seems to be yet another case of governmental over-reach.
And I don't see how it's relevant to mention how workers have "above median wages" compared to national figures. If anything, wouldn't that imply that Amazon is blindly giving out too much money and ignoring this very public information? That's implying an unlikely level of incompetence, when it's really about variation within the labor market.
I never said the above-median wages had anything to do with national figures; I meant that depending on what the employee and employer were bargaining around (more likely to be company median wages than national), the comparison would help the employees bargain up half the time, and the employers bargain down half the time.
I specifically said above, "Where the cost analysis may not be the same for each side.". This obviously includes non-salary benefits (stock, vacation, flex time, home life balance, etc).
You are also only addressing the workers with below-average wages (who may be qualified for higher pay) when you say that secrecy helps employers.
I specifically said above, "The worst case scenario for the employee is to find out they are making significantly more money than their coworkers, in which case they have no further bargaining power.". As an employee, your bargaining power is not reduced if you have knowledge of that you are paid above the median. In other words, from the employees perspective, there is no situation where you are in a worse negotiating position due to having more salary information.
so I would assume that transparency could be used to bargain them down, as the below-median workers were helped in bargaining-up;
Note that when negotiating, the only party that is going to negotiate for lower wage is the employer (since it is generally unlikely that an existing employee is going to ask for a lower wage voluntarily). And from that position, the employer already knows all current salaries. If you are making substantially more than the other people, then the employer can (and likely would) reveal that information in order to help secure a lower raise (or also likely, no raise, and unlikely, a lower wage). That's the power of information asymmetry. The employer can use the information when it benefits them (reducing the size of a raise for an already high compensated employee), but withhold that information when it does not benefit them (when a low compensated employee is up for a raise).
don't know why we should assume it goes one way or the other.
We don't have to assume anything. This is basic economic and negotiating tactics.
I am not an advocate for wage transparency or opaqueness, because I don't know which way the effects go for anyone.
It's perfectly reasonable to have an opinion on wage transparency, but it seems a little odd to say "I don't know which way the effect go for anyone". We have negotiating models and frameworks specifically for this type of activity. And the general rule is, "The more information asymmetry that you have in your favor, the better your bargaining position". Specifically because it allows the party with the additional information to use that information when it benefits them, and withhold that information when it does not benefit them.
I could see it going both ways, and I'm not sure how to figure out what the impact of wage secrecy is.
If all employees values transparency and fairness and would rather have a lower but more fair pay, them the transparency may work.
However, the employer typically derives more profit per unit of work if they employee makes less. Also, if you are a good negotiator or you are the type to always threaten to leave if not given more pay you benefit from the opaqueness. If the company has a lot of good negotiators it may make sense to be more transparent to keep the overall wages down since no one can exercise that benefit.
There are probably other factors such as supply and demand beyond individuals at specific points in time which need to be taken into account (surge pricing?) we need someone for this project now, so we will pay them a premium even if we would normally pay them the same as everyone else, even in consideration of long terms costs this may make sense.
E: Why the downvotes?