I guess it depends on why you are angry and punched that person in the face, did they spit on you, hit your wife, etc? Your analogy here isn't very good.
It isn't an employees job to understand what every other employee does and honestly management trying to justify every salary to every other employee would be a bit ridiculous. Maybe Jeff (or lets say Sarah) has a good salary because they bring in 10x the business as the next best sales person. That is easily quantifiable but lets say Jeff/Sarah brings in only the average income but you can see the growth with their customers. That isn't easily quantifiable and honestly doesn't need to be broadcasted to the whole employee base (especially since employees leave and go to other competitors and would then have a good list to work off of).
Employees routinely keep information confidential from each other because it makes sense to do so. This isn't a bad thing like you make it out to be, companies shouldn't be some open society where everyone gets to know each others business.