I know how I feel about this situation, and suspect I'm being unreasonable, but here goes.
We had bought a really nice Christmas gift for a close friend. We just got a card that in lieu of a Christmas gift, that friend is donating money to a very worthy charity in our honor. My feeling is that you should let people know in advance if you're going to do this, that there will be no exchanging of gifts, so you can reciprocate accordingly.
I hate to sound uncharitable, because that's not the way I am. I donate plenty to worthy charities, but I don't call them gifts in honor of somebody, especially people whom I have every reason to believe are putting some thought into buying a gift for me, and then not letting them know until three days before Christmas that I'm doing that.
I say: Donate to a worthy charity if your heart tells you to do that, but don't turn it into a one-gift-fits-all gift to all your friends, especially if you have reason to believe they're at least trying to do something special for you for Christmas.