Why do this?  (1) Per language stylesheet customisation.  The majority of the code can be in the middle layer, with per language code in the top layer.  (2) Per document customisation.  Perhaps your layer-2.dsl sets the flag that forces all articles to have a ToC, but you have an article that shouldn’t have a ToC.  You can create a stylesheet just for that document that turns off the ToC.  Note that in this case, layer-2.dsl is the same as the custom.dsl I’ve been building up in the previous examples.