Another problem with arrangements of small UNIX commands in pipelines is that the actual arrangement in use suffers from reliability and usability problems:
1. No way to test the whole, since in general each application has a unique structure with a potentially different choice of components, (A shell program executes whatever commands are on the system, not those it might have been tested with.)
2. No comprehensive error reporting (at best, reporting from individual commands), and
3. No way to provide support.
On a much smaller scale, imagine a component stereo setup that is delivering bad sound. You have a turntable, an arm, a cartridge, a pre-amp, an amp, speakers, and cables and wires, typically from seven or more different manufacturers. Not one of them would be able to help you with support. The dealer would, if you bought the whole lot from them. Or you could pay a consultant. This is one reason why in the 1960s so-called console stereos were popular. Generally, console stereos delivered inferior sound.
This isn't a criticism of sorting with UNIX commands, it's a broader criticism of the UNIX software tools approach for serious application development.
Of course, one could build a single system out of components, and package it all together as a tested and supported product. That's exactly what object-oriented programming does, and very successfully.
Marc