во всех трех примерах использован дефолтный скоуп как фильтр. Мне кажется дефолтный ограничивающий скоуп действительно выстрел в ногу. Но например для сортировке почему бы не использовать? особенно для сущностей которые имеют строгий хронологический порядок и не имеет смысла его менять.
этот же дефолтный скоп будет применяться и в джоинах User.joins(:posts)
-> SELECT users.* FROM users JOIN posts USING (users.id = posts.user_id) ORDER BY posts.id
а он там только мешает, заставляя БД делать сортировку там где она не нужна
и в зависимости от сложности запроса, когда там несколько джоинов (например в отчетах), имеет свойство ломать оптимизатор в БД, особенно если там еще и агрегация
(мб они это починили в посл версиях рельсы)