[`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/test/java/org/elasticsearch/cluster/coordination/NodeJoinExecutorTests.java
.toList();
        TransportVersion min = Collections.min(versions);
        
        NodeJoinExecutor.ensureTransportVersionBarrier(
            TransportVersionUtils.randomVersionBetween(random(), min, TransportVersion.CURRENT),
            versions
        );
        expectThrows(
            IllegalStateException.class,
            () -> NodeJoinExecutor.ensureTransportVersionBarrier(
                TransportVersionUtils.randomVersionBetween(
                    random(),
                    TransportVersionUtils.getFirstVersion(),
                    TransportVersionUtils.getPreviousVersion(min)
                ),
                versions
            )
        );
    }
    public void testSuccess() {
        Settings.builder().build();
        Metadata.Builder metaBuilder = Metadata.builder();
        IndexMetadata indexMetadata = IndexMetadata.builder("test")
            .settings(randomCompatibleVersionSettings())
            .numberOfShards(1)
            .numberOfReplicas(1)
            .build();
        metaBuilder.put(indexMetadata, false);
        indexMetadata = IndexMetadata.builder("test1")
            .settings(randomCompatibleVersionSettings())