If a joint account was just two personal accounts in the same view, I’d agree with you. But they’re more complicated than that.
Lending decisioning is more complicated. It’s not just what account a + account b is eligible for.
If the hierarchy was literally a joint account is an object that contains two personal accounts, you’d also get duplicated and unuseful concepts like Summary. In this instance, they’d be two personal Summary’s so that’d have to be factored into Summary to handle multiple users. And then there’s budgeting, and then there’s bill splits. But wait, payees need to be separated, card controls, 3D secure and help chat need to be different/seperated.
So now you’re left with half the code being relevant and half not.
Joint Account fundamentally needs to be it’s own account type that has two users. Rather than an account type that has two personal accounts.
I’m positive tonnes of the code is pointed to the same place - their architecture is microservices so any code that is common to both account types will just point to the same place.
But Personal Accounts and Joint Account fundamentally work differently, and I suspect as Monzo make more and more custom features that traditional banks do not have, we’ll see more features that only work for Personal Accounts or only work for Joint Accounts or work very differently between account types.