Если вкратце, разделы нужны для корректной работы ОС
На примере того же tail все по-другому. tail под linux и tail под macos - может быть вообще двумя разными бинарниками, написанными на разных языках
Могут легко между версиями поубирать флажки, подобавлять новых, поменять вывод, переназвать команды.
Ну да. На каждую либу и метод - по джарнику писать? А если вывод сложнее, чем exit code 1/0? А если нужно аргументы передать, будете парсить ввод? Как костыль - ок, но к хорошему решению этому далеко.
Ну тут наши мнения сильно расходятся. У современных языков есть вся мощь: асинхронность, параллельность, экосистема, синтаксис. Все это далеко не всегда нужно.
Но когда оно нужно, вы все равно будете писать отдельную софтинку на другом языке, даже если используете ее в одном скрипте в одном месте.
Боюсь что все это полная хрень. Сам долго так думал, а потом перешел на полностью электронные конспекты. Ну и если честно - значение конспектов преувеличено. Как там говорил Сократ?