Non è solo Oracle SQL, infatti credo che sia conforme allo standard ANSI SQL (anche se non ho un riferimento per quello). Il motivo è che la clausola SELECT viene elaborata logicamente dopo la clausola GROUP BY, quindi al momento del GROUP BY gli alias non esistono ancora.
Forse questo esempio alquanto ridicolo aiuta a chiarire il problema e l'ambiguità che SQL sta evitando:
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