I didn't know there were words for those in other languages. I guess I'd still prefer an expressive composable model for them so that I could reason about them. At least know who is related to who in which way, rather than these enums. But I guess that is outside of the scope for Apple - they just want that short name in the UX somewhere when adding a contact.
The point is that you don’t need to reason about the relationship because the name, in the local language, tells you everything you need to know. Of course, if you don’t speak the language then that’s not useful but the code is written for the end user to be able to use the labels, not for the software or its developer to be able to parse the family tree :)
Even if it's modeled with more compositional finesse in the code, you still need a UI level label for this combination of relationships in some culture where there's an appropriate term for it, so you still end up with some label like this.
Localizing, this falls into the things you thought about x are true.
This is the end result of a bunch of switches and ifs in a ui where your model, in very specific circumstances, boils down to a few words that most people understand without computer programming experience.