With some tweaks the existing parenting system could be added to, in order to do it. I think this is more or less what Romanji and ThinkingPolygons were getting at.
Add a new object type, something like “group origin”, which is essentially an empty, except it can have modifiers.
when you make a group and pick ‘merge’, one of these gets made, placed at probably the cursor, and anything at the top of the parent chain (i.e. that has no parent, or whose parent is not in the new group) gets its parent set to the new ‘group origin’ object.
Then just have the ‘group origin’ object keep a copy of its modifiers on the modifier stacks of its children. Some modifiers might need an extra button, such as if you wanted to support array with relative spacing using the size of the group as a whole, rather than each individual object. But on the whole, you’d get what you’re after - and you can use stuff like constant offset and object origins (on modifiers like screw) to do that.
The main thing that wouldn’t work is stuff like physics and particle systems, if you were to expect it to treat all the objects’ meshes as one - but that’d require some system that merges objdata dynamically and non-destructively which is probably a tall order. You might be able to write a modifier to do it, but there’s no telling how fast or slow it’d be
Maybe the first click on any of the group objects selects the ‘group origin’, which also highlights the group, but the second selects the object inside the group. Or maybe the ‘group origin’ has an edit mode that works like pose mode in that it sticks, and lets you select other things, and while its in edit mode you can select the grouped objects.
That would use the existing collections system and parenting heirarchy to achieve the results it sounds like are asked for, for the most part. The main thing is getting an object to copy & update its modifiers to its children (and thusly keeping track of which modifiers on an object came from a parent), and some exrta selection logic.
It’s possible you could do this without groups or even a new object, but rather just an object setting for grouping any objects’ children together (select the empty that everything is a child of, click a little checkbox that says ‘group children’ or something and viola. You can still have a menu option that automatically creates an empty, sets it as parent, and ticks this option, too), but then empties don’t have modifiers so that might be weird. Ideally if empties can be made to house modifiers though that is optimal and again is what I think Romanji and ThinkingPolygons were trying to suggest.
You can even separate the options, separate settings for ‘copy modifiers to children’ and ‘group children’
just rambling ideas.