Peanut gallery: I'm not directly involved here, feel free to ignore this, but I'll share some observations from earlier in my career, in they hope that they are helpful.
I have several decades experience* in game engines which I think are a parallel to this topic. It's difficult to maintain a separation of interests, and graphics engines (game engines) tend to encompass all things over time. First it's just about graphics, then:
- To get really responsive graphics, ya need fast IO, so IO becomes part of graphics.
- To get really responsive IO, ya need control of the memory, so memory becomes part of graphics.
- To get really responsive user input, ya need a direct feed of actions, so input becomes part of graphics.
- To get the audio and graphics to align properly, ya need accurate triggers/timing, so audio becomes part of graphics.
- (This list goes on with stuff like animation, physics, collision detection, latency compensation, networking, etc.)
- Eventually this gets so complex that troubleshooting with normal tools is difficult, so logging and debugging tools become included too.
- Less a factor now, but with spinning disks, the layout on disk became important, so asset packaging and installation may got pulled in as well.
At some point it becomes too much and the topics get separated again**.
I'm not sure if the treadmill above is good or bad. It sounds inefficient on the surface, but maybe it's part of the growth cycle - i.e. take all this with a grain of salt.
Aside: I've decided to try to avoid this cycle for the Fuchsia SDK, which is why the SDK team is so small. It could be driven in the opposite direction, I mean, what's not tied to the SDK in some way? For the SDK specifically, I don't think the cycle above will be helpful. YMMV.
* (six custom engines from roughly 1995 to 2006 - though I only did the graphics in the first couple, graphics is highly specialized work. I was more involved with bringing in the other pieces, so I have a heightened view of that aspect)
** While this might repeat if given the time, most engines were only used for a set of titles/products (a few years) and then a new game engine is created, so I don't have empirical knowledge on whether this would cycle indefinitely and I've been out of the industry for seven years now.