The core mechanic of the game is indirect management, but I think that AI of dupes are far from perfect to make them truly self-sustained. I think there are several global extra rules should be applied to dupes decision making system, so that they would prioritize things better.
1. Actions, that could block other actions in list should be performed at the end.
2. Actions, that could potentially block some dupe, should be postponed until that dupe leaves a certain area.
I've attached a video, showing the exact situation when these rules could help a lot.
I've attached another video, showing that I can not achieve correct behavior even using priority system. So the only solution to that is just keeping in mind that some commands should be performed only step by step. And that is the problem: when colony becomes big enough, you don't want to waste your time on such low-level managing, when you need something to be demolished/digged out, built etc, you don't want to give dupes a little portion of commands instead of a whole bunch, you don't want to sit and watch so that's nobody dies, while building just a new water pool.