My answer is:
it be better to have group contains objects create by specific class rather than group that holds the class objects and setup the subscription with "raised
by any instance in a specific group"
Reason
It is easy to maintain the subscription criteria list. Every time, when you want to add or remove class from the subscription, you does not need to modify the subscription criteria. You just need to modify the group membership.
Moreover, the group membership support dynamic membership which provide further flexibility for user to dynamic update the group object. At last, it create a performance issue when you update a subscription which has a long list of class objects, with criteria
"raised by any instance of a specific class".
Roger