It's not an ironclad law, and certainly custom-built schedulers can do what they like, but anything merged into Buildbot should follow this pattern, or have a good reason not to, IMHO.