Q:

Разница в количестве возвращаемых строк при явной и неявной группировке на пустой таблице

Ни для кого не секрет, что агрегатная функция на пустой таблице, например:
create table t1 (id number);

select count (1) from t1;

вернёт вернёт одну строчку:
  COUNT(1)
----------
         0

Как известно, здесь будет произведена неявная групировка с объединением всех записей в одну общую группу. Согласно стандарту SQL, даже если результат такой группировки не содержит ни одной строчки, он будет преобразован в одну строчку. Поэтому, результат запроса выше объясним и широко известен.
Но можно задать глобальную группировку, т.е. без указания полей для группировки, явно:
select count (1) from t1 group by ();

и результат не совсем ожидаемый:

no rows selected

Почему при явной группировке результат отличается? 

A:

Возможность явной группировки без указания полей group by () была введена в стандарте SQL:1999 совместно с введением Grouping Sets. Реализована она была в версии 9iR1 в 2001 году.
С тех пор, включая 12c, реализация была выполнена с отличающимся поведением при явной и неявной группировке. 
В актуальном стандарте SQL:2016-2 явно указано, что должна выполнятся синтаксическая трансформация с добавлением group by (), где требуется глобальная группировка, но group by явно не задан.
В релизе 18c Oracle, без какого-либо упоминания в списке изменений или документации, изменил поведение явной глобальной групировки:
18c> select count (1) from t1 group by ();

  COUNT(1)
----------
         0

PS Вероятно, это можно разценить как желание более полного соответствия стандартам. Есть надежда, что дойдёт очередь и до других отклонений от стандарта, таких как - пустая строка интерпретируется как NULL.

