Não é apenas Oracle SQL, na verdade acredito que esteja em conformidade com o padrão ANSI SQL (embora não tenha uma referência para isso). A razão é que a cláusula SELECT é processada logicamente após a cláusula GROUP BY, portanto, no momento em que o GROUP BY é feito, os aliases ainda não existem.
Talvez este exemplo um tanto ridículo ajude a esclarecer o problema e a ambiguidade que o SQL está 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