Half of my job is helping developers with their soft skills. I see tons of guys who can do anything that's asked of them but they just cant interview well. Some people are really bad at telling interviewers what they want to hear, some people are bad at sounding excited about what they have been working on, and some people are really bad at talking to people they dont know.
After first round interviews I sit down with managers and ask specifically why they were a yes or a no. If he tells me it was a technical problem then I get as many specifics so the developer can fill in the gaps for the next interview. If it's a personality thing then I'll work with that developer so they can nail the next interview.
I've had maybe 2 managers ever be sheepish about telling me why a developer was a yes or a no.
-- When I ask why I didn't got the job directly, I never get an answer. It only happened to me once, over a couple dozen interviews (I failed their silly test: debugging flow charts on paper). Even the companies who were polite enough to tell me of the rejection over email never replied when I asked why.
-- When someone else asks on my behalf (an acquaintance of the company, a recruiter, or whoever tried to sell my services when I work for a consulting company), they always get meaningful feedback.
If you're looking for a job, and keep getting rejected, try to go through recruiters. I've heard that constant pestering over the phone also works, but I never dared.
I didn't experience it often but it did occasionally happen with other companies too (I have been working as a programmer for the past 14 years & worked/interviewed with many companies).
Besides, people apparently do make hiring decisions based on things like "culture fit", which is a pretty good proxy for race, age, and social status anyway, so...