Just mulling over some more ideas here. A few possible design goals:
more elegant way of loading a basemap and manipulating it, in one go. (ie, load style from server, but add additional layers, without having to wait for a map render between the two steps)
make it easy to switch basemaps while retaining other layers
make it easy to specify how custom layers sit within a basemap (eg, "below first symbol layer")
This might look like:
Then:
Alternative:
That is, define a name for this point in the style, and allow operations to diff between points.