The OP's central point is valid: Putting code into production is very, very important. All the other goop (DI, IoC, AOP, etc.) should support that primary goal. The extra technology should be there to help deliver functional code into production.
I'd also want to see what happens after that, though. We've all seen projects that limp across the finish line, becoming a "declared victory" even as they demolish operations. There is, without a doubt, a massive framework backlash rampaging around the 'Net. It's only partly justified. To the extent that these frameworks let me separate concerns cleanly so I can continue to evolve a system without code rot, they have value. To the extent that programmers get caught up in feeding the framework, they are not delivering value.
"Feeding the framework" is any additional work necessitated by the use of the framework itself. Writing XML beans files for Spring is feeding the framework. If my objects are only used in one context, then I don't get any value from separating interfaces and wiring beans together in a different file. In such a case, I'd be better off just newing up the objects when I need them. So, I guess I'll go a step farther and say that the cost of feeding the framework must be more than offset by the net present value of future efficiency. Some frameworks will pass this test, some won't.
Delivering code into production is the start of the system's life. I'd also want to see what happens to the frequency of normal releases after the first one goes into production. Poor quality code tends to result in a decreasing frequency of routine releases. (Now, emergency releases, on the other hand...) Good quality code maintains a constant or increasing cadence of releases.