pruneDataFlowOutsideSourceToSinkPaths
Keeps only data-flow graph nodes and edges that participate in at least one path between configured source/sink endpoints. This is a data-flow diagram semantic filter, not an ICFG filter: it walks only EdgeKind.DATA_FLOW edges.
Endpoint-to-endpoint DAG edges are kept even when they connect source to source or sink to sink. Those edges are analyzer facts, not layout noise; the pruning only removes prefixes before the first endpoint, suffixes after the last endpoint, and branches that never reach another endpoint.
When a graph has no explicit source or sink annotations, the function leaves it unchanged. Some low-level/unit callers use DATA_FLOW edges for generic value-flow sketches that are not taint endpoint diagrams.