Relating to "why should anyone accept an answer", why not alter the point allocation system in a way that encourages discussion, thought provoking questions, or something along those lines?
It could eliminate {some of} the whining about not getting their answer accepted, since this is a different kind of community. To support that train of thought here is an alternative point distribution we could use:
answer is voted up..... +15
question is voted up... +5
answer is accepted..... +10 (+2 to acceptor)
post is voted down..... -2 (-1 to voter)
It encourages people to actually read existing answers and rate the best answer. On the flip side, it encourages good answers. For times that a Q & A is needed, it is welcome but de-emphasized when compared to StackOverflow and the other sites that value closed-ended discussions.
For comparison purposes, here is the current (as of 9/7/10) point distribution:
answer is voted up.... +10
question is voted up.. +5
answer is accepted.... +15 (+2 to acceptor)
post is voted down... -2 (-1 to voter)
Edit: Updated calculus