when and how should programmers be judged on their actual written code?
petesalty: Ah, and here we have the crux of the problem with the software engineering hiring mindset today. 
Over the years I've hired many software engineers and I've never hired anyone based on their ability to write code, in fact I never even ask about it. It's completely irrelevant. Why? Because I've never hired code monkeys. Those I outsource. I hire engineers. Engineers need to be problem solvers, and based on the proper interview techniques we can ascertain if they're problem solvers or not. These people can learn just about any language quickly so familiarity is not an issue.
Want to know if someone understands recursion, ask them about recursion. Ask them about the theory of recursion, how to use it, where it's appropriate and possible downsides. Ask how they've successfully used it in the past, when they've used it and it's been a problem and how they solved that problem. Ask them when might be a good time in a project life cycle to reactor non-recursive code. But for gods sake, please, please, don't ask them to write a Fibonachi generator. This either proves that they just finished college, or have one memorized for just such an occasion.
Hire engineers, not code monkeys.P.S. If you want to see some of the worst examples of this kind of abuse apply for any Ruby on Rails job at the moment - the stories I've heard boggle the mind.