This is a really good distinction.
You are right: matplotlib+seaborn is balanced, but it is not package-disjoint. So it answers a different question than the current sealed split. It would measure pair-level generalization with familiar packages, not true unseen-package generalization.
cryptography+pyopenssl sounds like the cleanest unseen-package post-resolve holdout in the current development set, even if it only covers import failures. Then matplotlib+seaborn or a similar mixed pair can still be useful, but it should be labelled as in-distribution / package-overlap.
So the card probably needs separate numbers rather than one headline:
full validation, resolved-only validation, package disjoint post resolve holdout, pair level / package overlap holdout, and smoke test mode, with a note if it cannot be measured package disjoint in the current set.
That makes the benchmark much more honest. It also makes the final challenge design clearer: if the 9-package set has no smoke failures, then smoke-test prediction should either be explicitly out of scope for the blind package-disjoint challenge, or measured separately in an in-distribution split.