Think of it this way: An ID pretty much duplicates everything stored in iCloud on all devices sharing that ID. That's the whole point of it. If you want to keep the phones separate, set up two separate IDs.
If I wanted to pay for apps that my wife & I purchase separately or for iCloud storage twice I would use two separate IDs. But this method worked for years with no issues until the last year. So it's an issue with Apple. Calls showing in recent is the only thing that's duplicated.
If your statement that "An ID pretty much duplicates everything stored in iCloud on all devices sharing that ID" were correct my wife & I would be getting each other's messages, contacts & calendars. But we're not. The same is true of our iPads. We use separate Apple IDs for iMessage & FaceTime. This started with iOS 11 and continued when we both got the iPhone X.
Set up both handsets with your own Apple IDs, then use family sharing so you only have to purchase apps etc once and can both use them.
So we have to change the way we did things because of a change from Apple? This change happened within the last year and I don't believe my wife & I are the only ones who share an Apple ID for iCloud and the App Store and use an individual one for iMessage & FaceTime. Everything else works the way we intend it to except for having each other's calls show up under recents. If we used Family Sharing would we each have to subscribe to Apple Music or will one subscription cover both of us like it does now?