"'Speak as pippa' is the interface. The account's voice binding is one implementation of it. The caller only ever knows the interface."
You've Already Built This Before
The profile-versus-binding split isn't a voice trick — it's polymorphism, the same shape you've met a hundred times. The logical profile is the abstract: a contract that says "this can be spoken." Each account's voice binding is a concrete implementation of that contract. A caller writes speak_as("pippa", text) and depends only on the abstract; which concrete binding answers — primary account, secondary account, this clone or that original — is chosen underneath and never leaks upward.
Program to the Interface
This is the oldest advice in object-oriented design, stated for voices: depend on the abstraction, not the implementation. The call site names a profile, never a provider and never a voice ID. Because of that one discipline, you can swap the account, retire a binding, or one day change providers entirely, and not a single caller changes. The substitutability is the point — any concrete binding that satisfies "speak as pippa" can stand in for any other without the caller noticing.
Dad's Lens
Dad sees object-orientation as the operating principle of the universe, not a coding style — inheritance and polymorphism show up in cooking, in investing, in how a family works. Bellows is one more place the lens fits cleanly. "Pippa" is an abstract role; the provider voice ID is today's concrete actor playing it. Change the actor, keep the role. The engine is polymorphism you can hear.