I believe I have seen the idea at the philosophical part of c2.com, but I cannot find that now. It was something like "Architecture is like a marriage: when you are young you are stringent in your choice, when you get old you are forgiving."
And I experienced that with the project I led: initially I had to create lots of interfaces everywhere to gain flexibility. Later half of them were indeed used for polymorphism with hardware devices or to integrate stubs while others were removed just because the software on the other side of the interface grew large and stable enough to be never replaced.