The same is true for functional organizations versus teams. A functional organization is an excellent tool to keep development expenses low. Teams are well-suited for rapid development, especially when they are adequately manned. Again, neither is a universal best practice. The great danger in labeling something a 'best practice' is that you cannot be against it.
People stop thinking as soon as something is labeled as a 'best'.
Such mindless behavior is dangerous in a complex world. I am simply arguing for a more thoughtful approach to development process design. We all know the mantras. Waste is bad, efficiency is good. Fat is bad, lean is good.