I was thinking of that, too. The reason I went for this implementation instead (aside from it being much simpler to implement), was that indirect-mentions comes with a bunch of more complications system-wise.
For e.g. we currently have a limit of mentions you can do per post, which has security and spam-related reasons. What does that mean for a group-mention? Does it count as one or as the representative many? In the first scenario, that means we allow spamming again, in the later how do we tell the user they can’t use it?
Another thing, right from the top of my head is when group members change. Mentions are static at the moment and we (as the system) only have to take of them when the post is created. If someone is added to a group (which is implicitly done by the admin and doesn’t need confirmation of the particular user), should they receive all former posts as mentions? And what if a post is added to a topic a “group” was mentioned in earlier? The tracking is currently bound to the User (which I consider the right way of doing it), this new user therefore won’t be informed. But should they be? And what if someone leaves a group? Doesn’t necessarily mean they shouldn’t track the conversation anymore. Having all these implications just because you join or leave a group sounds very inconvenient and unexpected consequences of that action for the user.
You see, this is all types of confusing and raises more questions about behaviour in implementation that we don’t have clear uses cases for yet. So whatever we’d decided it would be wrong. This approach is visible and clear. And by expanding the group, the users is clearly aware of their spam behaviour and can rethink it before doing so. For everything else, I think categories are the better use-case of separation.