Using foreign keys is a strategy in setting up your databases for inheritance. There are various ways to do this, and Mendix chose this one. For example, see this article that discusses various strategies for implementing inheritance: How to Model Inheritance in a Database
What mendix does here is employ the “One Table Per Entity” strategy, while what you're describing seems more like the “One Table Per Entity with All Attributes” strategy. Each of these have their own advantages and disadvantages as outlined in the article.