..I think that is where it often all goes wrong. Manglers, sales-droids et al who just don't get behind the scenes that well respond to bells & whistles hitting their screens quickly (so they can make important exec decisions about colours, fonts and the like), and getting those there and kind-of-working all too often takes precedence over a really well-considered underlying architecture. It really doesn't take long before the "weight" of it all makes it increasingly difficult to go back and do what you should have taken your time over in the first place i.e. performance fixes are often compromised by limited 'wriggle-room" later down the line. I'll leave how that could possibly be true in the fabulous, brave new world of reusable, extendable, flexible, abstract OO-everything, as an exercise for the reader.
first releases of products are often compromises and performance problems can be addressed in future versions