I was once asked to complete some programming challenge type of test before an interview. I told the recruiter there was no way I would be doing that. They were, in their own words, stunned by this. I offered that I would happily do the same test on-site, where the people recruiting would be committing a commensurate amount of time to the process as I would be, but they were stuck with their process. I found a job somewhere else, which, being a developer, is incredibly easy.
I really wonder how this disconnect persists. Developers are more in demand than ever, yet companies still feel like they can pull hazing rituals and run-the-gauntlet challenges on potential hires.
Perhaps the hires that make it through this process are not, in fact, better than the rest, but simply more pliable and with less self esteem. Perhaps that is the point.