If it is a company's policy for employees NOT to discuss their pay, pay rate, salaries, or other issues, then they should NOT discuss it.
In an 'at will' employment position, you can be terminated for any reason. That means that if you fart in a staff meeting, you could be fired. It means that if you wear a BLUE shirt on "RED shirt" day, you could be fired. and if you discuss your SALARY with a co-worker, you could be FIRED.
Your employer does not want a bunch of disgruntled kid games when it comes to work and pay. If "Bob" has a work ethic and record that says he should get a 10% pay raise this year, and you only get 3%, so what. It is your employer's right to dole out pay and money as they see fit. I've worked for many different defense contractors since 1987, and each has a policy of not discussing pay with co-workers. You may not like it but do NOT be surprised if you get fired for doing so. And you won't be able to 'sue'. The sure fire way to get in trouble is to go back into your boss, angry and demanding why "Bob" got a 10% pay raise and you only got 3%. Maybe Bob DESERVED it. But in any case you do that and you'll both probably get booted.
Yea, you can discuss whatever you want, but if you violate company policies you'll get canned.