Não sigo como dogma. Como tudo, depende do contexto e do problema.
Por exemplo, para modelos que possuem uma ordenação natural, e que raramente faz sentido exibi-los fora dessa ordem. É um default_scope que considero importante, uma regra de negócio que não vale a pena ser ignorada.
O custo de não ter o default_scope nesses cenários é sair tacando "Model.scope" pra tudo quanto é canto, ferindo outro princípio bastante norteador que é o DRY.
Sobre a justifica (1), "you can't override", é tão trivial perceber que tem um escopo default (no log de desenvolvimento / no arquivo do modelo), para aplicar #unscoped **quando** for o caso, que considero responsabilidade do desenvolvedor conhecer o framework que está trabalhando e ter a sacada quando isso acontece.
A justificativa 2 é muito boa, porém tb capturável facilmente quando o projeto está devidamente cauçado por uma suite de testes. Se o projeto não tem testes que tratem isso e ajudem a corrigir colaterals, a culpa não é do scope, definitivamente.
"Don't use anymore" é um exagero.
Grandes poderes trazem grandes responsabilidades, já dizia tio Ben...
abs!