I don't really like charity gifts, and in all honesty, I can't say I would feel grateful if someone bought me a goat from Oxfam. I have my own charities that I give a lot of support to, so if a donation is going to be made on my behalf, it should be to one of them.
I think charity gifts should be something you ask for, for yourself, rather than something you decide to give to other people who haven't expressed any interest in the idea. Or else to make a point to ungrateful gits who turn their nose up at anything you give them. The idea that I can decide to give your present to someone more needy instead seems very smug to me. Unless they've suggested/agreed/whatever of course.