I think here I'd just populate the set with the checks as per the current configuration instead of iterating over the classes:

    rules = newHashSet();
    rules.add( new VoidMethodsMustNotBeReturnValueConstrained() );
    rules.add( new ReturnValueMayOnlyBeMarkedOnceAsCascadedPerHierarchyLine() );

    if ( !allowOverridingMethodAlterParameterConstraint) {
        rules.add( new OverridingMethodMustNotAlterParameterConstraints );
    }
    ...

That way you'd avoid the reflective instantation.

There could even be a method `getApplyingMethodConfigurationRules()` on the configuration object suggested above, so the set of rules would only be created once per bootstrap.