Não tanto uma resposta como uma observação. É tecnicamente possível (mas provavelmente tolo na prática) ter referências circulares em restrições.
create table blue (blue_id number primary key, val varchar2(10), red_id number);
create table red (red_id number primary key, val varchar2(10), blue_id number);
insert into blue values (1,'test',2);
insert into red values (2,'test',1);
alter table blue add constraint blue_fk foreign key (red_id) references red (red_id);
alter table red add constraint red_fk foreign key (blue_id) references blue (blue_id);
Então, eu poderia entender se eles decidissem que, porque nem sempre é necessariamente alcançável, eles não se incomodariam em colocar os objetos em ordem de dependência.
Como tal, eu deixaria as restrições referenciais de fora quando as tabelas estivessem sendo criadas, então as aplicaria como ALTERs depois que todas as tabelas fossem criadas.