I think we could add a configuration that will allow replicating primary contacts, using the same replication depth. I don’t think this should be the default, since this might be undesirable for some configurations.
Having different configs for places vs people would not be trivial with our approach, because we use a view which is unaware of whether a contact is a place or person, since we can’t inject configurable hierarchy contact types in the view. This means that we’d need to edit the view to emit the contact type, and, in code, we would query for every contact type for every level instead of one query just by level.
This adds complexity and potentially impacts performance because of the additional queries that are needed.