Ending A and B don't require any flags to be reset. Ending C and D involve multiple flags being set that would need to be unset to do the ending again properly (especially ending C). It honestly probably just comes down to workload not being worth it when you can avoid doing all that with just one flag that prevents getting the ending sequence again. Good example of over analyzing something when in the end, it is just a game and has such limitations.
Developer could unset flags by "resetting" the world, meaning that he'd add a script in the end of endings C and D that he already left for you to activate in the Holy Forest, but he didn't do it for your own convenience.
And your theory maybe correct too, though even if you reset flags by going into "another loop", you can't reset everything completely, you'll always be greeted by Leaf, knowing that you "looped".
So, it can be a combination of solutions for developer's convenience and user's convenience too, but it doesn't make my theory any less reasonable.
Ending C weakened Leaf and after ending D Grimm couldn't continue looping, unless Grimm was a part of Leaf's Dream (not just garden), that just slowly losing stability after TCO's attack and eventually crumbled completely.
I'll explain this prototype of a theory in a rough image. Different layers of existence:
Anyway, I don't see everything I said before any less reasonable.