Eu discordo totalmente que aumenta o acoplamento.
Sem injeção de dependência, você tem um acoplamento rígido entre um subsistema e a implementação concreta da dependência.
Com a injeção de dependência, você separou o subsistema da implementação da dependência.
Argumentar que ele aumenta o acoplamento entre o consumidor e esse subsistema é MUITO questionável, pois implica que o consumidor agora está fortemente acoplado à dependência exigida pelo subsistema. Tudo o que isso significa é que você está escrevendo um código fortemente acoplado que une seu consumidor à dependência. Idealmente, TODO o seu código é dissociado.
Injeção de Construtor:
A resolução de dependência é manipulada por um contêiner de injeção de dependência ou uma fábrica. O consumidor pode obter uma implementação concreta do subsistema do contêiner de injeção de dependência ou de uma fábrica.
O consumidor não precisa saber como é o construtor do subsistema. Não há acoplamento à dependência do subsistema.
Injeção de método:
O mesmo que a injeção do construtor, exceto que agora o consumidor precisa obter uma instância concreta da dependência do contêiner ou da fábrica (ou mesmo que o método / construtor seja injetado) e injetá-lo no método. Novamente, o consumidor não está acoplado a uma implementação concreta da dependência.
TL; DR O
pior caso para injeção de dependência em um subsistema é que o acoplamento é alterado para o código do consumidor. NÃO EXISTE AUMENTO GERAL NO ACOPLAMENTO.
O melhor caso é que agora todos os sistemas estão fracamente acoplados e a injeção de dependência é controlada através de contêineres ou fábricas de injeção de dependência.