I think there are a couple of aspects to this issue:
In public sites, and other environments like this, Morale is of the upmost importance. More than any individual.
Morale is really a delicate thing, and should be handled with care.
Someone threating to leave because something they don't like is going on are bad for morale, and it is probably better if they leave.
The world is not improved by giving up, is improved by trying over and over.
No individual contributor, or even group of contributors are so important as the morale of the whole community, and if you have a bunch of disrupters that like to vent in public channels, without being constructive, is better to let them go.
One thing is complaining about the policies and try to change them, and something else is to use your leverage as valuable community member so things are done your way. The later is not good and it is better if they leave, as I stated before.
I know that the participation in these sites is voluntary, but I think we should try to be as professional as we can, if someone is not being professional and venting in public threads, it not helpful, and if they do it regularly enough it outweighs their good contributions.
People threating to leave over and over, it is not really professional or helpful.
He/she can answer a ton of questions, but if each time something that he/she doesn't like happen, is going to threaten about leaving, well they are not really that valuable after all.
In a social environment we need to keep certain conduct standards, if not proper socialization and integration is not possible.
There will be always more people for answering the questions, don't despair if some leaves. It may slow down the community a bit if a big contributor leaves, but it is not the end of the world.
People can not always get their way, if they can not understand that you are better off without them.
Try to engage them as Von Lion suggested in a private setting/chat.
Ask them to stay, because they really are valuable for the community. Allow them to vent, you probably agree with some of his claims, you could also expose something you don't like about the community that they do like, so he can see you are not just rage-quitting because of that.
And finally ask them to refrain from venting the way they do in public channels, ask them to be constructive for the good of the community, or if they need to vent offer them to talk with you.
Finally, although as I said, if people are rage-quitting in a noisy way and disrupting the morale of the community they are better off gone, you need to analyze whether or not there are merits to their claims.
You make it sound like it has happened several times that valuable members leave or threaten to leave.
Is it possible that policies are at fault? If so, can you do something about it? Change them, update them?
If it is a policy enforced by a site feature and you can not have it changed, you could write some guidelines so although the site feature seems to enforce it, the community itself won't.