In any case, hidden information is no good. So the alternative solution is to erase any prior information about whether children were checklists or not. In other words, in Step 3, Foo, Bar and Baz all would be non-checklists.
I think the originally proposed solution is better than this alternative solution. Under the original solution, to get the alternate solution behaviour, I can just select the item as a whole, thereby selecting descendants as well, and then make all of them checklists. However, under the alternative solution, to get the original solution behaviour, I… can’t do anything. I would have to remember what the descendants looked like before and manually recreate all of that.
I think it’s better to make the user be a little more explicit than to erase their information.