Earlier quoted context omitted.
The problem is that interviews are high stress affairs. Stress produces adrenaline. One of adrenaline's known effects is to prepare us for "fight or flight", meaning that higher order logic is shut off, digestion is shut off, our senses sharpen, reactions improve. This is great when you've got to climb a tree to get away from a tiger. This is horrible if you are trying to demonstrate your ability to function mentally…
Well, jobs are high stress affairs too. We often have to maintain production systems that fail in cryptic ways at the most inconvenient times. I postulate that such situations are more stressful than solving some binary search tree problem on a whiteboard.
For me the former situation leads to lots of bad feelings including irritation and incredible anxiety. I have often considered the latter type of situation fun times. For a lot of programmers difficult puzzle solving stress is good stress.
From what I have witnessed from current in-the-box hiring practices is a lot of extroverts get hired who are good at spin and presentation. Quite a few managers never detect that they are actually not great programmers because they are brilliant at sucking up and putting on a show. Those skills dont always hurt, but they shouldnt be considered a deal breaker for a programmer who actually gets good work done.
Best practice I have ever encountered is when interviewers give out interview questions in advance to allow to the interviewee a while to think about the problem in quiet.
I love the idea of short term contracts for both parties to suss each other out.