When and why do you use any grouping? To be able to act on the group as a whole or on its individual members - only its members. That's the answer here also.
There are commands and other functions that act on a given group or set of groups. customize-group
is one that acts on a given group. customize-apropos-groups
is one that acts on a set of groups.
When you use customize-group
you see links that let you customize subgroups (if any) and individual members (options and faces) of that group.
In addition, a group typically has a prefix, and you can use that for pattern-matching against function, face, etc. names when you interact with Emacs. This is another way of limiting actions to a given set (customization group) of things.
A group can also provide quick access to the online doc, source code, bug reporting, etc. for a package. Here, for instance, is the definition of group Icicles-Key-Completion
(with some code elided).
(defgroup Icicles-Key-Completion nil
"Icicles preferences related to key completion (`icicle-complete-keys')."
:prefix "icicle-" :group 'Icicles
:link `(url-link :tag "Send Bug Report" ...)
:link '(url-link :tag "Other Libraries by Drew" ...)
:link '(url-link :tag "Download" ...)
:link '(url-link :tag "Description" ...)
:link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
:link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1"))
This group is itself a subgroup of group Icicles
(see :group
). It provides links in the Customize buffer for sending a bug report, downloading, and accessing the doc in the source code or on the Web.