This is a question that I have given thought to repeatedly over the years. You have good, hard working people who join a good company and, over time, the relationship between the two changes. That doesn’t necessarily imply things are bad, but just different. The result, unfortunately in many cases, is that the real loss is felt by the company losing the talent and not by the individual losing the company because that prominent individual is very capable to securing a new position elsewhere.
This is clearly evident by the lack of good talent available in the market today and why, in many cases, there are bidding wars on the limited talent pool. If you are in Silicon Valley – I’d like to see you find a great software programmer – go on… find one that is just sitting idle waiting for your call!