2, так как ты потом можешь переиспользовать тот же min для многих случаев. даже в случае маленьких программ - придется переписывать одно и то же для разных типов, а можно было сделать полиморфный тип, и переиспользовать несколько раз.
Как переиспользовать? Вот есть у меня, условно, grep - она строки молотит в файлах. А есть какая-нибудь xinetd, которая соединения пробрасывает. Функциональность очень разная. Всё разное. Не понятно, что можно переиспользовать.
Это концепция unix. Система специально так проектировалась, чтобы можно было изолировать домены ответственности и домены ошибок в небольших независимых, ортогональных по функциональности, процессах, чтобы в целом всё работало стабильнее.
Противоположностью к unix, кстати, были lisp-машины, в которых всё было монолитно, один image на всё, общий код и т.д. и т.п. Ну и где сейчас lisp-машины?