I'm quite a new user on Stack Overflow but I already know what you mean. It can get really frustrating, especially when you donate 2h of your time and somebody doesn't show the smallest form of appreciation.
Today, when thinking about this I came up with an idea. What if every user could have a blacklist to which he/she could add the users who behave this way, and next to the reputation and badges there would be an extra thing with the number of users who put the person on their blacklists?
The way I see it, seeing a question asked by a person with a high blacklist number, the community would be more aware of who's asking the question. On the other hand there could be alerts like "careful, over 5 people have added you to their blacklists - you should consider accepting the relevant answers to your questions". At the same time, after the user accepts them, the ones who put the person on their blacklists would get an alert like "User X is getting to know how things go and has accepted 5 answers today", which would be a signal to take the person off their list.
I think the system would give the asking people the opportunity to learn how things go and prevent the users on the forum to engage in an activity that doesn't bring them any good.
And yes, I'm aware of the fact that ideally, users should just contribute because of being good :) and that the general idea of answering is not the prize, but the contribution. On the other hand, things in general are far from ideal in this world and this behavior discourages many people from contributing and maybe having such a system could somehow fix the issue.
What do you think about the idea?