My experience has been–which appears to be general consensus also–that it is very difficult to know how to get SBT to do something that isn’t a very slight variant on something you already have a formulaic solution for.
Much of this is dictated by SBT’s overall design, which at this point cannot be substantively changed. But it could be vastly better documented. The existing documentation, long though it is, leaves one exceedingly far from mastery. Documentation that carefully describes how each higher level thing (e.g. project .dependsOn) is implemented at the next lower level (something do with tasks, I’m guessing?), and how to get access to that,and change it, and if one needs to modify existing stuff what the evaluation order is, etc. etc., would enable people who needed to to come to the required level of mastery in a more reasonable amount of time.