La opción '-o' ya estaba en sortla sexta edición de Unix
Sin embargo, estoy de acuerdo con usted en que no está dentro de la filosofía de Unix. uniqno tenía esa opción (y sortno tenía un -uentonces).
En mi PDP-11 usé un pequeño programa que tomaría un parámetro:
renac whatever
Si whateverya existiera, escribiría todo, desde stdin a un archivo temporal, que solo fue renombrado whateverdespués de que la entrada stdin se agotara. De esa manera, podría canalizar la salida de cualquier comando en renaclugar de redirigir al nombre del archivo sin la posibilidad de sobrescribir la entrada. Resolver el problema de sobrescritura de esa manera es, en mi humilde opinión, más conforme a la filosofía de Unix.
Algunas adiciones posteriores al programa fueron: no sobrescribir el archivo de salida si no había llegado nada en stdin (por ejemplo, como resultado de escribir mal parte de la línea de comando), y permitir una opción para agregar stdin al archivo nombrado.
Este fue uno de los primeros (si no el primero) programas reales de C que hice (para mi trabajo lo desarrollé principalmente en Pascal en ese sistema).