It's not "the worst" in relation to other interview options. It's the worst because it's usually in addition to other interview options. I just stopped doing take homes on my last round of interviewing. Just not worth it. It was always just added work. It never replaced a stage of the process.
If you think about it, it makes sense though. Very few companies would hire people directly based on the strength of their github account or their topcoder rank. So, if they won't do that, then what extra information does a take home really provide?
Companies seem to recognize that they want to hire people who do good work and that good work isn't done in an interview setting. But very few companies are willing to just analyze the candidate's work. They want to subjectively judge the person.