Monad-style modeling lets you compose dynamic and non-linear workflows, and you can sometimes parallelize independent computations inside those monads. But when monads carry dependencies (state, effects, context), you still chain operations: each result often needs to flow into the next, even if the path is dynamic. So even outside strict sequential models, the “engine rebuild” problem remains—at every decision point, you often need data produced by previous steps.
In practice, modeling can be flexible and dynamic, but reasoning about one problem usually hits the same wall: not every step can run in true parallel, because you’re still passing unique “ingredients” from step to step.