let me post my 2 cents.
--
donations often mean much more psychologically than they do financially. they are like cookies or presents, they make you feel good. they make you feel like your work is appreciated. most serious programmers i know really enjoy programming, and they'd do it for themselves (and often do), regardless of money or appreciation.
but don't underestimate the effect that getting positive feedback has on a coder, it really helps motivate one, especially past those difficult 5% issues, where if it was just for yourself you probably would have stopped tweaking a long time ago.
it's not just donations, it's feedback in general. having a non-demanding and appreciative user base which is constantly injecting new ideas and giving you a pat on the back for good work does so much to make the coding more fun. i mean just look at the bug reports i get on the dc forum - there's just no way i could find all those bugs by myself, and even if i could, it would be just pure pain.
being able to interact with users and find a few who are happy to test stuff is invaluable and makes the whole development process much more fun.
the monetary donations really do help also in their own way, it's like you say, a kind of 'objective' reward that makes you think, hey someone appreciates what i'm doing.
in the last months i've frequently found myself at the end of a 15 hour run of programming or working on the site, and a bit frustrated, and hear a little 'ding' of the email program letting me know someone has made a donation, and it makes me feel like, hey this work i'm doing is noticed and appreciated, and it makes it all worth while.
--
it also has to be said that many of us find ourselves in financial situations which mandates trying to earn some money for the amount of work we put in. i wish i didn't have to ask for monetary donation, and i never would if i didn't find myself in significant debt and needing help pay bills, and in these cases the donations are critical to being able to spend the time working on the programs, rather than just a nice motivation.
--
so my view is that donations really mean so much to me, both financially and psychologically, though if i had to choose from donations or having active users who talk with me and share their appreciation for the programs, i'd choose the latter. to have both is a wonderful thing.
--
now a downside, to zaine's question #2.
there is a phenomena that can happen with things like donations and hit counters. which is the author is happy until they put out a call for donations or add a hit counter to their page, and then get depressed when the results are not very good. It can be a real shock for an author to find out that with thousands of downloads per week of a program, only one person a month actually is willing to donate. It can be a kind of negative feedback where an author comes to feel as if his work really isn't appreciated.
one of the purposes of this site is really to address this issue where people who would without thought pay $30 for a program if it was shareware, but won't even consider donating $5 for it if they don't have to. As users we have to think about the bigger picture. That donation helps fund the author to do more work, and helps support work on the program. Your donation helps you in the long run, because it means more improvements of the code, and it means showing the author that you want him/her to keep on doing what they're doing.
in a very real way, i hope this site can grow into a place where authors can have a real interaction with an active and appreciative user base, so that the users+authors can work as a team to improve the programs, and where an author can feel appreciated for their work. donations are one way people can express support for an author.
if you are an author and considering asking for donations, i will tell you what i've learned. when i first asked for donations for a popular freeware program i wrote many years ago, i got maybe 5 donations, all by mail (i didn't have paypal, don't think it existed yet). those donations were extremely meaningful to me, but i soon removed the request for donations from the program because clearly for 5 donations it hardly seemed worth the effort to even ask.
the lesson i learned is that, if you decide that you need to ask for donations, then you have to reall ask - you have to make a real point of it, and swallow some of your pride about it. if you don't, even good people will not respond. you need to do more than simply have a "donate" button on your website if you expect to get donations, you have to really tell your users that their donations are important to you. some people will never donate, either because they can't or won't. but a significant portion of people are just reluctant to, and need to be given a reason and some motivation. just remember to ask in a nice way !
--
I've gotten emails from people donating who tell me when they see a cool open source or freeware project, they sometimes make a small donation of a couple dollars, even if they don't use the program. I do this sometimes too if i see a program that isn't quite at the level of its commercial counterpart but is making progress to it. I think of it as helping support future work. I urge you all to consider your donations as a way of encouraging good behavior and showing solidarity with those who want to keep software available to everyone. It can mean so much to the moral of a developer, and let's them know that you appreciate their choice to keep their software free.
also, do not underestimate how nice it is as an author to get an email saying how someone liked your program. as our countries become more and more dominated by giant corporations we have come to think of businesses as faceless humanless operations whose only purpose is profit for the shareholders. but a freeware author is a real person who takes the time to make his/her software available to the world because they like the idea of helping others. as an author, getting a note of thanks from a user is such a nice thing, a validation of the substantial work involved in making your software available. especially when you consider that most of the email they get is probably technical support requests. a pure thank you email can make an author's day, believe me