The charity inspiration comes from 3 main things. Firstly that it makes the money distribution easier and would hopefully cut down a bit on arguments over who gets what. Secondly a lot of FOSS projects do support a charity with donations - we might not be talking Oxfam here, what about software related ones, like a Linux PC for every child? etc. Thirdly it means people know where the donations go - rather than to all sorts of contributors it is going to a recognisable charity :)
That said perhaps there are other avenues: the main point is to not give cash out to contributors because that defeats the object somewhat (in my eyes :D). For example it could go into some sort of software related fund (perhaps like a google summer of code type fund) etc.
The same thing might even happen to the user base: the software is still free, but now you get a guilt thing for not having donated to Oxfam.
Weird psychology at work here, I'd guess.