do such a Promises' voodoo danse
Indeed it is currently awkward to register a GraphListener for an as-yet-unknown build; the current API is geared towards listening to a build you already have a reference to. That could be a useful general API in workflow-api. Possibly just by documenting that GraphListener may be an @Extension rather than attached, in which case you would receive events from all builds (you can use FlowNode.getExecution as needed).
At any rate, a specific use case is required for evaluation. Sam Van Oort would probably evaluate.
As an aside:
while a dedicated plugin is created just for "stage" pipeline DSL keyword
The original implementation was rather complex and frequently required patching. The block-scoped step is far simpler and could have been in workflow-basic-steps. I wanted it to be a separate step (label), but Kohsuke Kawaguchi was adamant that the stage name should be reused, so we have a tiny implementation embedded in a more complicated plugin.