I agree with your team-lead decision [update=2012.05.31]that SRP is generally a good think. But i totally agree to @ Spoike -s comment that a constructor with 20 interface arguments is far to much.[/update]:

Introducing SRP with IoC moves complexety from *one* "multi-responsible-class" to *many* srp-classes and a much more complicated initialisation for the benefit of 

 - easier unit-testability/tdd (testing one srp-class in isolation at a time) 
 - but at the cost of 
 - a much more difficuilt code initialisation and integration and 
 - more difficuilt debugging
 - fragmentation (= distribution of code over several files/directories)


I am afraid you cannot reduce codefragmentation without sacrifying srp.

But you can "ease the pain" of codeinitialisation by implementing a syntactic sugar class that hides the complexity of initialisation in a constructor.

 class MySrpClass {
 MySrpClass(Interface1 parm1, Interface2 param2, .... Interface20 param2) {
 }
 } 
 
 class MySyntaxSugarClass : MySrpClass {
 MySyntaxSugarClass() {
 super(new MyInterface1Implementation(), new MyImpl2(), ....)
 }
 }