Natürlich ist das mehr Aufwand, aber das ist halt die eine Seite eines Kompromisses auf dessen anderer Seite die Einfachheit (und damit Verstaendlichkeit und Fehlerminimierung) der Software und dessen groessere Flexibilitaet durch orthogonale Kombinierbarkeit stehen. Eine klare Antwort, wie man diesen Kompromiss entscheiden soll, gibt es IMO nicht -- mal ist der eine Aspekt wichtiger, mal der andere.
Ohne Anspruch auf die einzig richtige Lösung haben zu meinen, kann ich keinen Verständnisvorteil von einer Pipechain im Vergleich zu einer Folge von Einzelbefehlen/-funktionen sehen. In der persönlichen Anwendungserfahrung ist das Pipe-Prinzip eher so: Ich papp' solang' was hintendran, bis es geht. Das läuft darauf hinaus, dass der Prozess eher unnötig komplex wird, also das Gegenteil von einem Verständnisvorteil.
Aber vielleicht machen andere das ja anders.
Ansonsten zeigen die vorliegenden Trivialbeispiele IMHO auch eher eine größere Komplexität und schlechtere Lesbarkeit als die logischen Ausdrücke.
Aber das mag jeder für sich selbst entscheiden.
Wartbarkeit und Effizienz sind IMHO zwei elementare Schwerpunkte. Ich sehe nicht, dass sich die beiden zwangsläufig ausschließen. Eher das Gegenteil: Effiziente Programme können sehr simpel sein und deswegen einfach zu verstehen. Im Gegensatz zur einfachen Lesbarkeit erfordern einfache und effiziente Lösungen mitunter ein erhebliches Maß an Hirnschmalz.
Das alles seine Vor- und Nachteile hat und seinen Einsatzzweck ist klar.
Ich denke auch dass es eine Frage der Gewohnheit ist. Bei mir weicht die Gewohnheit des hintereinanderpappens zunehmend den gelernten und geübten von mir erwähnten Methoden. Zumindest sobald dieser Code es Wert ist in eine Datei geschrieben zu werden.