It's beneficial to the webmaster, not the user. If most people were presented with a choice of whether or not to provide this information, they'd decline.
It's win-win. If a webmaster knows that traffic is coming in for a specific term and how long that traffic sticks around, they can decide whether they have sufficient content there to keep those users happy. If not, they can add content or tweak the site, which benefits the user.
If a user comes across a site because of a google search, it's more likely than not that he's there for a specific purpose and does not plan on returning. If the webmaster is able to glean useful information from his behavior and use that to improve his site, then it's possible that users in general are better off, but the original user is long gone.
You walk into a store, can't find what you were looking for and leave without a word. You keep doing the same for a month, and keep blaming the store for not stocking enough items. Wouldn't just telling the seller what you're looking for benefit both of you?
That analogy doesn't really work - if they came to your site from a particular search term it would seem likely the content is already there.
Even if people are reaching a site based on a mismatched keyword, I wouldn't have thought many people check their logs and update their site because they're getting a lot of hits from a particular term they don't have much for?
True. I was kinda looking at it from my own perspective. My blog usually gets hits from people looking for "college education india". I can retarget my content towards college students, put up a few AdSense ads and make some cash. Of course I wouldn't do that, since my blog is strictly personal, but I think it's a viable strategy to drive more content towards your site.