Whether pay or conditions, there is nothing wrong with having a discussion and asking for changes (or in this case, retaining the status quo).
I do agree that "having good developers is a privilege" is a strange viewpoint. In fact, people often say I could get 30% more easily" when that isn't the case. So I take most of this question with a pinch of salt.
How do you know his whole contract terms. It's not that simple, there might be an informal clause to it, agreed on with previous management. Maybe in lawyer-centric US this is unthinkable, but I doubt that. The country is not specified, btw.
--------------
I believe in dealing in good faith with people who deal with me in good faith. But it has nothing special to do with being a programmer; it's something I'd do in any job, and it is reciprocal. There's an implied agreement that they're going to try to treat me decently and there's an implied agreement that I'll do the same for them. If either of us breach that, I strongly desire the other party to defect.
There is no moral responsibility to "honor your contract". The contract is a mutual agreement, not a word of God.