I am working in a large-ish software project with several dozen developers.
Our internal guidelines have it such that responsibilities for aspects of the application are clearly assigned. For instance, individual parts of the business logic are maintained by different, specialized teams, parts such as the GUI, web APIs, or the DB schema are watched over by different teams each. (That doesn't have to mean these teams do all the work; just that they have the final word in their respective realm of responsibility and may make some amendments.
The benefit is that the respective parts are kept consistent across the application, even in new situations that are not yet covered by any styleguide. Likewise, parallel development of almost the same functionality in different parts of the application is avoided. The only downside I see is that often, no team can work on a task totally independently, because most tasks include some (w.l.o.g.) GUI or DB topics at some point.
In all, clearly assigning responsibilities like this seems beneficial to me, though, as it makes clear exactly who will do what. While I do not claim we are well organized in all aspects, my impression was that these clear-cut responsibilities do actually work well.
Now, I recently outlined the above to a (software developer) friend, with roughly the same words as here. His only remark was: "Oh my, sounds really chaotic. Everyone's messing around everywhere!"
This got me worried, or at least wondering: Is the way we assign responsibilities an organisational problem rather than a success (one that I might not notice due to being too immersed within the project)?