I'm pretty sure that at least some companies compensate for negotiation skill at annual raise time. Google, for example, tries to normalize salaries by performance & job function when they grant raises. So if you're a really good negotiator and managed to get a salary much higher than your equally-performant peers, your annual raise & bonus will be less than if you're a really good programmer but suck at negotiation.
My guess is that all other things being equal, a bad negotiator won't actually catch up to a good negotiator. If things are not equal though, and the good negotiator sucks at his job while the bad negotiator is absolutely rocking it, I think that the strong technical person could easily make up the difference through promotions and bonuses.