Es ist nicht nur Oracle SQL, tatsächlich glaube ich, dass es dem ANSI-SQL-Standard entspricht (obwohl ich keine Referenz dafür habe). Der Grund dafür ist, dass die SELECT-Klausel logisch nach verarbeitet wird die GROUP BY-Klausel, sodass die Aliase zum Zeitpunkt der GROUP BY-Bearbeitung noch nicht existieren.
Vielleicht hilft dieses etwas lächerliche Beispiel, das Problem und die Mehrdeutigkeit zu verdeutlichen, die SQL vermeidet:
SQL> select job as sal, sum(sal) as job
2 from scott.emp
3 group by job;
SAL JOB
--------- ----------
ANALYST 6000
CLERK 4150
MANAGER 8275
PRESIDENT 5000
SALESMAN 5600