O exemplo que você trouxe mostra o pior cenário possível: um bloco gigante de utilitários sem qualquer abstração. Ninguém defende isso como ideal.
A questão é que, na prática, esse formulário viraria um componente <AuthForm />. Dentro dele, você teria essas classes, mas quem consome o componente vê apenas:
<AuthForm />
A transparência visual está no momento da criação/manutenção do componente, não na leitura da estrutura principal. E a "mistureba" que você aponta no Tailwind é explícita e local. No CSS separado, a mistureba está espalhada em arquivos, com efeitos colaterais implícitos (herança, especificidade, classes que afetam elementos que você nem lembra que existem).
São trade-offs diferentes. Um prioriza isolamento e contexto local. O outro prioriza semântica e camadas arquiteturais. Nenhum é objetivamente "mais claro" em todo cenário.