Tanto quanto pude descobrir, muitos DBMSs (por exemplo, mysql, postgres, mssql) usam combinações fk e pk apenas para restringir alterações nos dados, mas raramente são usados de forma nativa para selecionar automaticamente colunas para ingressar (como a junção natural faz com nomes). Por que é que? Se você já definiu um relacionamento entre duas tabelas com um pk / fk, por que o banco de dados não pode descobrir que, se eu ingressar nessas tabelas, quero juntá-las nas colunas pk / fk?
EDIT: para esclarecer isso um pouco:
suponha que eu tenho uma tabela1 e uma tabela2. A tabela 1 tem uma chave estrangeira na coluna a, que faz referência à chave primária na tabela 2, a coluna b. Agora, se eu ingressar nessas tabelas, terei que fazer algo assim:
SELECT * FROM table1
JOIN table2 ON table1.a = table2.b
No entanto, eu já defini usando minhas chaves que table1.a faz referência a table2.b, portanto, parece-me que não deve ser difícil criar um sistema DBMS usando automaticamente table1.a e table2.b como as colunas de junção, de modo que alguém possa simplesmente usar:
SELECT * FROM table1
AUTO JOIN table2
No entanto, muitos DBMS não parecem implementar algo assim.