SpringIterableConfigurationPropertySource has logic to help respond to containsDescendantOf in a performant way if PropertyMapper.DEFAULT_ANCESTOR_OF_CHECK is being used. For system properties, we can't use this mapper so we resort to checking each property name. If we cache the results, we should be able to improve performance.