The people who create separate tables for each entity do so because each entity is used in a different context. They don't ever consider the possibility that a given entity might actually occur in multiple roles. A vendor may also be a customer. A teacher might also be a student. A student might also be a parent, etc. Then they get into designing and building the application and they find themselves creating other virtually identical tables for each entity such as contacts, addresses, notes, communications, etc. And then they get cute and try to make common forms for each of the entity's child tables or even worse, try to combine the child tables for all entities so that the single address table contains addresses for customers, vendors, employees, etc which is really a nightmare.
If your business truly has little to no overlap with entities appearing in multiple roles, then I have no objection to the separate but equal table design pattern -- BUT, all the child tables MUST also be separate. Then, when the data elements and validation rules are identical, it is OK to reuse forms. If the parent tables are separate, under no conditions should the child tables be combined. You give up the ability to use RI which is too important to lose. When you reuse subforms, you need to not fill in the master/child links because the PK/FK names will be different for each pairing. That means that you need to populate the FK manually as you do for popup forms.
However, having worked with both types of schemas over the years, using an entity schema where all entities are in a single table and there are combined child tables so there is only one address table, one contacts table, etc. is easier in the long run. In some applications, some of the entities will have a sufficient number of ancillary attributes that are used only for that entity type that you might make an additional child table rather than include these fields in the entity table. Usually, we're only talking about a few fields and so I don't bother. Sometimes, I make a field multi-use so LastName and CompanyName are always required but mutually exclusive so I name the column LastOrCompany since the validation rule would be required but not usually anything else. So, in my applications, the entity table might be slightly denormalized in that it includes columns that are only required for specific entity types and columns that are multi-use depending on the entity.