### Description

This is a followup to #85926.

As part of the ingest processing pipeline, we call `CollectionUtils.ensureNoSelfReferences(...)` to ensure that a script processor didn't accidentally introduce a circular object. However, this check is only necessary if we know there was the potential for a circular option, which can only happen with either a custom processor (a plugin where we have no control), or a script processor. We should be able to only call this sanity check if we know we need it, rather than for every document.
server/src/main/java/org/elasticsearch/ingest/IngestService.java
pipelineConfig = XContentHelper.convertToMap(request.getSource(), false, request.getXContentType()).v2();
            var currentPipeline = currentIngestMetadata.getPipelines().get(request.getId());
            if (currentPipeline.getConfigAsMap().equals(pipelineConfig)) {
                
                listener.onResponse(AcknowledgedResponse.TRUE);
                return;
            }
        }
        final Map<String, Object> config = pipelineConfig == null
            ? XContentHelper.convertToMap(request.getSource(), false, request.getXContentType()).v2()
            : pipelineConfig;
        nodeInfoListener.accept(ActionListener.wrap(nodeInfos -> {
            Map<DiscoveryNode, IngestInfo> ingestInfos = new HashMap<>();
            for (NodeInfo nodeInfo : nodeInfos.getNodes()) {
                ingestInfos.put(nodeInfo.getNode(), nodeInfo.getInfo(IngestInfo.class));
            }
            validatePipeline(ingestInfos, request.getId(), config);
            clusterService.submitStateUpdateTask(
                "put-pipeline-" + request.getId(),
                new PutPipelineClusterStateUpdateTask(listener, request),
                ClusterStateTaskConfig.build(Priority.NORMAL, request.masterNodeTimeout()),
                PIPELINE_TASK_EXECUTOR
            );
        }, listener::onFailure));
    }
    /**
     * Returns the pipeline by the specified id
     */
    public Pipeline getPipeline(String id) {
        PipelineHolder holder = pipelines.get(id);