The 'required' status for a field in a multigroup does not make sense in the context of the actual group.
The 'required' checkbox on the group itself requires there to be at least one subgroup in the multigroup.
The 'required' checkbox on a field requires that field to be filled out.
The problem is, if the 'required' checkbox in a field is checked, then it also requires there be at least one subgroup, as that field cannot have no values. This prevents the case of a non required multigroup where one or more fields MUST be filled out per item.
In my case, I have two fields, "a" and "b". I want "a" to always have a value, but "b" to be optional. Contrast this with the user setting a value for "b" and leaving "a" empty, which would be a valid subgroup if "a" is not marked as required.
However, I also require the multigroup to have 0 rows, as this group is designed to have entries added after the fact (via another module, there's another bug report on that).
Currently, my only choice is to attempt to work around the fact that the user can enter an invalid subgroup by custom php code and the Rules module. This would be a messy workaround and add unneeded complexity.
One could require field "a", and instruct the users to enter bogus values. However, since the purpose of this field is to reference a user for "A" and a node for "B", and the values would be set by another module, this value would be completely meaningless and just muddle up all usages of this field.
Solution: Change the field 'required' behavior to be local only to the subgroup.
I know little about the core of cck at this time, but I figure the required behavior is operated on in there, rather than in the multigroup module, so this would be difficult to pull off without a redesign to push handling of required fields to groups in much the same way multi values can be handled entirely by widgets or formatters.