I'm no programmer, but I know this component stuff has been a Holy Grail for a long time. As you say, they only go so far, and interoperability of components is a big problem.
Maybe in 10 years computers will be fast enough and storage will be cheap enough that a GNU library of 10^10 robust components that can be extended easily in a bullet-proof manner will exist, but I'm not betting on it either. Maybe such components would cover 50% of standard business programming by then, but they won't cover the "cool" and "interesting" stuff that people enjoy working on. So there will always be a need for new custom code that doesn't exist in some drag-and-drop framework. At that point, robust tools and processes need to come into play.