Navigation properties allow to represent semantical links between objects in OData. A link that is technically established as the translation of a foreign key - primary key relation could semantically mean different things. E.g. in banking the account could be related with different rates. You could argument that you can specialize the entity rate, but in that case you would make different objects and make it needlessly more complex, whereas the single object already represents what we need, hence it would make more sense to have the possibility to name the relations according to the types and maintain the two already existing entities.