Thanks for the response - interesting set up especially with the use of Jupyter notebooks.
It seems to be a case of always having a solution that's "the best of a bad bunch" rather than a "good" one. Like Churchill on democracy.
We simply have too much going on to sit around and try to perfect a solution. I don't even think it'd be worthwhile even if we had all the time in the world. We see what works, if it doesn't work we change it. We also don't let bureaucracy interfere with forward progress. 80% of the solution is usually good enough. We aren't in it to sell books about management.
Note that I said "loose partitioning". Team members are expected to be able to make forward progress on their own in areas they don't work on as the main thing they do, but review code for. Maybe not at the same speed, but at least they can fix minor issues and bugs. Anyone can change anything in the code base as long as the original author of the design approves the PR. The understandable desire for territoriality is ignored as a matter of policy.
And none of what we do could be described as "simple". It generally ranges between "insane" and "frustrating", sometimes both.