This was actually fixed in some recent-ish work in dijit._Widget's getChildren and dijit.findWidget which now does the right thing in finding the child widgets, regardless of them being immediate child nodes. I've added a (monkey-do) test to confirm and track the behavior going forward.