I'm confused as to why people are sure that /not deadlocking/ is better. Maybe somebody can walk me through the rationale.
A program which deadlocks has a serious bug in it. The argument seems to be that not deadlocking would make this program better, but, since it has some bug that normally leads to deadlock it's presumably now going to do something entirely unpredictable, and there is no reason at all why we should believe that's better, indeed from a debugging POV it's worst because it'll be harder to understand what the root cause is.
Tools that detect code which seemingly _could_ deadlock (but perhaps rarely does in practice due to a hard-to-win race condition) have been seen as really useful. If deadlocking is so bad, why are we so happy to have those tools which detect the same situation a little earlier?