Как правильно собирать Web-проект?
Ох, grunt и bower (While Bower is maintained, we recommend yarn and webpack for new front-end projects!) сейчас уже никто не использует. gulp еще кое-где живет, но далеко не везде. Фронтендовые пакеты ставятся npm, сборка — webpack.
Интеграция с бэкендовой сборкой сводится обычно к запуску npm run build в нужной директории (любой сборщик умеет запускать произвольную внешнюю команду).
P.S. Да, webpack это больно, но сейчас гораздо проще найти готовый конфиг и минимально допилить под себя. Еще yeoman помогает.
Чет я не понял про php за пределами public_html. Думаю, имелся в виду интерпретатор, а не исполняемые файлы. В самом веб-проекте логику и структуру вы задаете сами, и все лежит вперемешку (хотя обычно под css- и js-файлы создают отдельные папки), и никаких проблем это не вызывает. Мне кажется, вы слишком заморачиваетесь, при этом мало практикуясь )