Are you asking philosophically should it or as written does it?  For the later, yes.

This thread is getting long.  We don't disagree about moving the muxing logic into a single flat function in manualcontrol.c do we?  You want to try and do that and then we can discuss the subtleties of the conditions there?