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.