На мой взгляд, большинство классов в BCL (библиотека базовых классов) являются классами утилит и, как правило, не имеют тонны других зависимостей, кроме прямых графов вызовов.
DI предназначен для выравнивания графиков вызовов и предотвращения большого количества перекрестных разговоров между классами. Таким образом, и тот факт, что вы ничего не можете сделать с болтливостью BCL, вы могли бы просто принять их такими, какие они есть, и продолжать использовать новое ...
Единственная причина, по которой вы этого не хотите, - это в целях тестирования. Обычно вы не тестируете классы BCL, но вы можете заменить класс BCL на смоделированную версию, чтобы он фактически не делал то, что делает класс, а только притворялся, что делает это ... SystemWrapper, чтобы сделать это при необходимости.