I guess don't hate the player hate the game as it is all game theory in the end and the complainers or negotiators will always tip in their favor. You can be a team player and get your worth but you have to speak up and be aware.
I think it is better to be fair at salaries even though you could pay the great developer you have lower than the good one that knows the market and is a negotiator. If you don't and they find out they are gone as happened in this instance. Open salaries might even be a good idea with bonuses for performance.