Maybe I'm just not understanding very well, but it seems like we're saying "we've designed the API so that a single progress can't have multiple parents, and we can't change the design to allow multiple parents, because then our API couldn't safely enforce the restriction on multiple parents".
If we decided we did want to allow a progress to have multiple parents, then the API would naturally have to be designed differently. But are you saying that it's impossible for such a design to ensure safety?