In my opinion, threads are in a similar vein like goto and eval.
It is true, that a good, disciplined programmer with the goal of a performant application with simple and good code can use gotos in a way which enhances the code, and he can use threads to enhance the performance without bringing all living hell down on people around him.
However, it is also true that a lot of people who only consider themself to be a good programmer want to use threads, gotos and all these powerful constructs, and because some dude called tetha said that good programmers can use them well, they will use them. But since they are not good programmers, a mess will happen.
Thus, strongly advocating against threads -- while wrong -- is still right in my opinion.
Granted, I don't want to go off-topic too much, but I cannot talk about the GIL too much, because the matter is too delicate and complicated for me. Sometimes the GIL enhances performance, sometimes it degrades it. Live with it, and if you really need parallelism, use the libraries out there for it.