Nothing anywhere online talks about
this..
That's because tables have nothing to do with Core Data.
Core Data is not SQL. Entities are not tables. Objects are not rows. Columns are not attributes. Core Data is an object graph management system that may or may not persist the object graph and may or may not use SQL far behind the scenes to do so. Trying to think of Core Data in SQL terms will cause you to completely misunderstand Core Data and result in much grief and wasted time.
In this, case your SQL trained intuition for how to optimize SQL will cause you to waste a lot of time. If your peaking into your SQLite store as you develop, you are using Core Data incorrectly. It's not just an object wrapper for SQL.
It was a design decision to put all entities with the same inheritance into the same SQL table when Core Data is using an SQLite store. However, that has little functional relevance in most cases as Core Data manages the object graph first and cares little about the details of persistence. If you have a large number of objects of the same entity inheritance tree you might hit some performance issue at the very high end e.g. 20k+ objects but otherwise not.
In any case, it can't be changed. Core Data intentionally hides the its SQL implementation because SQL is just one persistence option out of many.
Premature optimization is the root of all evil. Build in the logically best fashion and then test. Only if you encounter an edge case in testing should you worry about the minutia of the SQL store.