LauraH I think the process for Group By is to identify all items that meet the filter criteria and then show only those items, put in to groups by the specified type. So if no items match for a particular group, then there is no group.
What you are suggesting is to find and show all possible instances of the Group By type and then apply the filter to the child items of each. That’s a very different process. How would that work when grouping by tag, or contact, or date? Doesn’t seem to make sense to show groups for all possible values of those.
Part of the issue here is that Group By project is kind of a different animal than the others so I guess there is an argument for treating it differently (this also goes to the other discussion about having projects with no incomplete children).