A principal desvantagem é perder a formatação personalizada onde realmente importa.
Imagine uma verificação de sanidade típica se () falhar se alguma das condições específicas estiver presente, mas não for atendida ...
if(
(user.id == TEST_ID)
||(
(user.id == UserID)
&&(
( user.type == HUMAN_USER && user.name.size() >= MIN_NAME )
||( user.type == EMULATION && input.source != SOURCE_INTERNAL ))
&& ( user.email == NULL || emailValidator.isValid(user.email))
&& ( (user.phone == NULL) == (user.type == EMULATION) )
// several more lines like this.)
){ /* handle results */ }
Isso é legível graças ao recuo razoável, seguindo a estrutura lógica das condições.
Agora, sua ferramenta automatizada não tem idéia sobre a separação lógica de diferentes condições em linhas relacionadas. Não vê razão para que cada grupo de condições seja composto por 3-4 em uma linha e divida a próxima condição pela metade. Ou ele será dividido, uma expressão de comparação por linha. Pode até parecer mais bonito na tela, mas a lógica será perdida.