La respuesta es que ciertamente no son redundantes.
Es cierto que uno puede lograr el mismo resultado final utilizando un script bash que incluye comandos drush (al menos la parte de construcción). Pero, si lo que queremos hacer es integrar nuestro proceso en un marco de CI como JenkinsCI, entonces usar algo como phing (ant o capistrano podría ser sustituido aquí) es el camino a seguir.
Con phing podemos dividir el proceso de compilación en distintos segmentos que pueden informar a Jenkins de manera inteligente.
Así por ejemplo. Digamos que como parte de mi proceso de compilación, uso drush para habilitar dos módulos, nodo y debería fallar. Entonces la construcción debería fallar. Pero si todo lo que hacemos es decirle a JenkinsCI que ejecute el siguiente comando de shell, JenkinsCI dirá que la compilación PASÓ:
drush --quiet --yes @staging en node shouldfail
Claramente eso no está bien. Sin embargo, si en su lugar usamos hormiga o phing para definir el mismo proceso, también podemos agregar algo de lógica de falla que Jenkins entiende y, por lo tanto, falla como debería. El siguiente script de compilación de phing intenta hacer lo mismo que el comando anterior, pero falla como esperamos:
<project name="staging" default="enable modules" description="Jenkins Staging Build">
<target name="enable modules">
<exec command="drush --quiet --yes @staging en node shouldfail" error='error' checkreturn="true">
</exec>
<loadfile property="en.error" file="error" />
<if>
<contains string="${en.error}" substring="warning" />
<then>
<property name="en.fail" value="Could not enable all modules" />
</then>
</if>
<fail if="en.fail" message="${en.fail}" />
</target>
</project>
Por cierto, la hormiga y el phing son casi idénticos. La ventaja para los desarrolladores de PHP en el uso de phing es que pueden extender el phing con mayor comodidad.
En cuanto a que el desarrollo de Drupal y el drush son tan buenos como son, no veo demasiado valor en extender el phing, y creo que ejecutar tareas ejecutivas sería suficiente para crear una plantilla de compilación inteligente.
Bueno, para responder a mi pregunta, terminé invirtiendo el tiempo para resolver el phing. En realidad es bastante intuitivo y no lleva mucho tiempo darse cuenta.