[`Setting.versionSetting`](https://github.com/elastic/elasticsearch/blob/0652a5915586abbcdfdfffa91a391740f0147752/server/src/main/java/org/elasticsearch/common/settings/Setting.java#L1275) (only used by index compatibility setting) does not use the `Validator` passed in - its just discarded. Looks like it's been like this since it was introduced by https://github.com/elastic/elasticsearch/pull/83264 in 8.2.0.

Enabling this causes some tests to fail. Enabling this may cause problems for indexes that have a wonky setting already applied.
server/src/main/java/org/elasticsearch/common/settings/Setting.java
validator.accept(byPrefix);
            return byPrefix;
        }
        @Override
        public boolean exists(Settings settings) {
            for (String settingsKey : settings.keySet()) {
                if (settingsKey.startsWith(key)) {
                    return true;
                }
            }
            return false;
        }
        @Override
        public void diff(Settings.Builder builder, Settings source, Settings defaultSettings) {
            Set<String> leftGroup = get(source).keySet();
            Settings defaultGroup = get(defaultSettings);
            builder.put(
                Settings.builder().put(defaultGroup.filter(k -> leftGroup.contains(k) == false), false).normalizePrefix(getKey()).build(),
                false
            );
        }
        @Override
        public AbstractScopedSettings.SettingUpdater<Settings> newUpdater(
            Consumer<Settings> consumer,
            Logger logger,
            Consumer<Settings> validator
        ) {
            if (isDynamic() == false) {
                throw new IllegalStateException("setting [" + getKey() + "] is not dynamic");
            }