I think you are looking at this from the implementation POV. From
users' POV, an option (or a minor mode) is a better way when we are
talking not just about changing colors and other face attributes, but
about changing behavior in significant ways. In this case, what is
implemented via faces changes the behavior, because a face prominently
different from the default becomes like the default, and another face
makes the reverse transformation. Think of this as a binary mode that
makes either the first-difference or the common part prominent:
flipping a variable is an easily understood and easily discovered way
of getting each user the behavior he/she wants.