Rather than hardcoding which settings are overrided by CaptivePortalModeEnabled, it should be controlled by a new field in the WebPreferences* yaml files. This would be more future proof and allow easier refactoring and stick with the general philosophy of making as much of the settings code as possible declarative.
<rdar://problem/85647258>