Isn't this similar to the deprecated MTLValueTransformer methods where runtime inspection would reveal that the returned transformer conforms, but the semantics of the old transformer remain unchanged?