But it is almost universally agreed that doing so benefits the community as well as the poster.
Actually I don't think so. Quite a few times my downvote comments, especially on answers, lead to unhappy responses which may turn into lengthy comment wars (for which I am as much to blame as the op). I've used the "let's continue in chat" feature more times than I would want to. That's a byproduct of the downvote comment that's common enough to be taken into consideration.
The same doesn't happen (as much) in questions, but there where a couple of instances that: I was the first to happen upon the question, downvoted and left a message. And then the question was deleted by the op. That's the op's right, but not why I took the time to write the comment, which was to help the op improve the question. Imagine my frustration when I've written a lengthy comment with links and helpful tips, just to find out a few minutes later that the question (and my comment) was gone.
So, when it comes to answers, the faq states (emphasis mine):
Programmers — Stack Exchange is a site for professional programmers who are interested in getting expert answers on conceptual questions about software development.
I hereby pledge to aggressively downvote every answer that in my mind is not an expert answer, without feeling any obligation to explain why I did so.
It's in the faq, I don't care if an asker is unclear on the guidelines, but imho an answerer must be. People should answer only if they are 100% certain of what they are saying, otherwise leave a comment instead.
And when it comes to questions:
I hereby pledge to aggressively downvote every question that could be easily answered with a simple Google search, or the Wikipedia article on the matter, or something that would require similarly minimal effort.
I will consider taking the time to accompany my downvote with a helpful comment if and only if the asker is clearly a noob.
Downvotes are the StackExchange way of saying "your answer is not helpful" and "your question doesn't meet the criteria". I'm getting increasingly tired of all the whining, all those "why the downvote" comments, especially when there's only one downvote - if it's more than one, well it should be obvious. But if it's just one, the correct question the op should be asking would be "how come no one cancelled out that downvote with an upvote?".
btw I don't have any opinion on if you choose to leave a comment explaining a downvote or not. I'm just saying that in my experience sometimes it's not as helpful as intended, people get hung up on the one downvote disregarding the fact that it doesn't really matter. And I've seen more than enough sad instances of ops responding aggresively to the one downvoter that was kind enough to leave a comment, without taking into account the fact that their post was downvoted into oblivion.
A comment is personal - it identifies one individual's thoughts on the post. Whether that will lead into an improvement of the post or a comment war highly depends on the op and the commenter. It can't be safely predicted or assumed that it will by default benefit the community and the op.