It's hard enough trying to find good people; as pleasant as that sounds, I can't imagine narrowing my criteria to "good people who can take a week off their current job to do contract work while we decide whether to make them a full offer."
That definitely seems tough. Maybe shortening the project time to a couple days (over a weekend?) or a few weeknights would help. From the hiring side at least, the time investment would seem worthwhile, considering you're evaluating a potential team member.
It doesn't work at all for people currently employed.
However, I've given that issue a lot of thought, and I've changed my mind in that there is something really really nice about it: it gives unemployed programmers a lot of breathing room.
You may think that it's really easy to get hired, and in the top-5 cities it might be, but in other markets even very qualified people can't get interviews lined up quickly.
If I were to get laid off tomorrow, I would love the fact that there are employers who, after an initial screen, would take me in for a week at contractor's rates to evaluate me.
1. I would get paid, and after being laid off that would be a tremendous relief.
2. It is much easier to get in the door. Employers always worry that the person they are bringing on won't cut it and will have to be let go. With this test, it is very easy for both sides to try it out without worrying about an expensive "divorce."