kht, ao ler sua resposta para nycolexavier lembrei-me de um caso que ocorre em determinados processos que se auto realimentam. Às vezes, é preciso incluir um ruído para que a convergência não ocorra por vícios decorrentes desta realimentação.
Sua resposta fez o papel desse ruído, percebendo que regras nem sempre são vistas como normas para serem seguidas à risca, mas apenas dão uma orientação para que o programador busque se manter mais próximo à elas com parsimônia ou, no jargão da área, K.I.S.S. but not so simple. Não usar o terminador é delegar a tarefa para outro fazê-lo, no caso aqui, o interpretador.
Concordo contigo quando sugere o uso dos terminadores ponto-e-vírgula (vale muito a pena conferiro os weblinks que indicou a respeito). Não só explicitam o fim de uma sentença e livra o programador de algumas armadilhas, como exemplificou, mas também facilitam o processo de "minificar" o código, aglutinando tudo em uma linha só. Esta é uma prática bem conhecida, quando o código javascript já está "redondo" e vai para produção.