Yes variables could be used for nested groups, but then again variables could also be used for all groups, so I really don't see where the difference is. Groups are a simpler and cleaner way of doing something. They are directly part of the code which they affect so there is no initialisation required on the script's part, they can't be deleted by overzealous use of /unset wildcards or edited by curious users delving into the Variables section of the mIRC editor. They are simply better for the task at hand because they were created specifically for it.