Nearly. If you simply add the lines I suggest you get to a graph similar to the one you say but then we rebase B onto F (and not F onto B).

My question is more: shouldn' we check for this problem in the RebaseCommand and don't even start rebasing when we see this? I most cases I don't like to check for error conditions when I know the situation is handled already later. 
But here it could make sense. First: what Rebase does is expensive. Second: the check is cheap. We anyhow have to visit every commit to be cherry-picked during the initialization phase of the rebase command. A simple check whether any of the commits is merge commit in the loop where we build up the cherryPickList is easy to implement.