It's necessary due to context shuffling. You want to make sure that the plan is splatted into multiple files and then repicked up, analyzed and implemented. ie have the harness create PLAN_{FEATURE_A,FEATURE_B,TESTS,ARCHITECTURE}.md and then pick it up piecewise or in parallel. It's also required if you want to change things between runs, if you try to one shot it you can't easily interrupt an agent.
You don't need plan mode specifically for this, but it amounts to the same thing.