There's also a difference between the opinion of one user vs the collective opinions of users as a whole. In most software these are conflicting goals. For example, iOS can't just add random features willy-nilly to satisfy an individual's feedback. So the product management needs to come in between developers and users to aggregate user demands. You'll have to make everyone a little bit unhappy to make users collectively happier. One of the reasons I like extensible software is that those two goals are no longer conflicting. Hopefully you know what I mean when you see Jenkins (http://jenkins-ci.org/)
I do share the joy of "caring about your users," there's something very special in knowing this one person/user, understanding his/her needs, solving it, and making him/her happy. We obviously do that through software, but this drive is universal.
Fair point - an example related to inventing new datastructures would probably have been slightly more realistic ;-)
I certainly agree with your point about "the challenge of the collective user" from a PM perspective. I've worked on quite a few teams where this "collective user" was more of a product of the marketing or PM team's imagination than actually representative of real users, though - and even if you cannot please all users all of the time, in my experience the more of those users are real, the more motivated you are to try to please as many of them as you can.
Overall, very glad to hear there are lots of parts of the industry that are doing a lot better than I have experienced!
Regards
ap