The first thing that jumped out was that you are trying to fit programmers into a bell curve, when they're really distributed by the power law, see: http://blog.benroux.me/4-steps-to-making-your-interview-suck... That was kind of a side piece to your blog, though.
Secondly I wanted to give you some ideas I've had on a similar topic, just to throw them out there:
Apple has a three-step interview process that I found interesting. First they ask a question about a language (your choice in language) to see that you know at least one language well. Then they ask a question about an algorithm, then they ask a design question (how would you design a chess game? What classes would you use?)
Another thing I've found is that programming skill is the low bar. It's important, but what you really want in a candidate is someone who can self-manage, who knows how to get things done. Can I assign this person a task, and they will be able to finish it on time (or let me know as soon as they realize it will be late)?
So in an interview, I ask questions to figure out if the person can get the computer to do what he wants. Then I try to figure out if he's a good self-manager. Unfortunately I haven't figured out a way to determine that in an interview, but I'm still working on it :)