I find that phone interviews actually work differently - I've been able to turn around an unenthusiastic interviewer and I've been able to lose someone who liked me. For that reason, I think questions of actual code aptitude are best done on the phone, as that's the only place where you really can evaluate someone's thought process isolated from mitigating psychological barriers that occur during face-to-face interactions.
The icky reality is that face-to-face impressions are pretty much determined by how you smell. I think there are two reasons for this - first, there's the concept that people naturally want to be around winners and if you come in looking like a loser they'll be predisposed to dislike you in ways that escape their conscious thought. To work this one, try to chalk up a win before your interview (or get laid - again, hate that it works this way).
The second is that as people we unconsciously recognize whether or not the candidate believes that they're a good fit for the position. If you go in freaked out, you're going to set off a bad feel no matter how hard you try to cover it up. The feeling a recruiter responds to in the first thirty seconds is "this could work". You can't fake this, and this is why being as good as possible at what you do really does matter. It definitely rewards intrinsic overconfidence, but the more intrinsically underconfident people are generally smarter anyways and will eventually be so much better at what they do than their peers that they'll win in the long run. If you feel insecure in your ability to fill a position, get better at what you do and prove it to yourself by having other people evaluate your work - the feeling will go away eventually. Code review is scary for people insecure in their abilities, but it's easily the fastest way to wipe away pathological insecurity.