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