Interviewing is difficult but I don't think it needs 8 hours of coding to make a decision whether to give a candidate a shot or not.
Companies should take a closer look at the work of their employees during the first month's of employment (trial period in most countries) instead of giving home work which does not respect the interviewees time in my opinion.
I would prefer an hour live coding over spending a week full time without pay on the companies work. And let's face it: the more time you spend the better the result will be. In an interview the company at least had to pay you the respect to spend time of their own. So the company has an interest to limit the interviewing time...
And usually you are not applying at a single company. I don't think the interview process should be 5 weeks of work (or even more) for a candidate
There isn't a correct answer I guess, nothing will suite everyone.
Edit: changed to a less snarky response.