However, one would imagine this could affect usability of a composed subprocesses.
Using the retail example, let’s say I have a shipping subprocess which I would like to re-use across different business units with different processes. One could easily see the use-case of defining this subprocess in its own file to allow for re-use. Defining it inline means you’d have to remodel every where you thinking of shipping which somewhat violates DRY.
How would this work if say we added a property on a subprocess element which allows one to supply a BPMN file name? Then as part of compilation you explode it similar to what you do when executing a subprocess? I can’t imagine this to be a far reach given there is already support for subprocess.