ad. 1) Wszystko zaczęło się od błędnego założenia, od którego wyszedł React – że tradycyjny podział na HTML, CSS i JS to nie był podział ze względu na odpowiedzialności (separation of concerns), ale podział ze względu na technologie (separation of technologies). To tylko częściowo prawda, bo, owszem, był to podział na technologie, ale wtórny. Frontend został podzielony właśnie na te trzy technologie, bo każda zajmuje się czymś innym (HTML – struktura treści, CSS – prezentacja, JS – warstwa zachowania/logiki). Niemniej ten statek już odżeglował i obecnie podział na odpowiedzialności jest przeprowadzany bez równoczesnego podziału na technologie. Najbliżej tradycyjnego podziału zostało Vue, ze swoimi jednoplikowymi komponentami. Chyba najdalej odszedł od tego React, ze swoim JSX.
Z punktu widzenia developera to krok w przód, ponieważ musi znać tak naprawdę tylko jedną technologię, ale z punktu widzenia użytkownika to duży regres, ponieważ aplikacje JS-only są wolniejsze, a przy okazji – bardziej zawodne. Obecny światek frameworków frontendowych to wyraźny przypadek, w którym DX stało się ważniejsze od UX.
Będąc świadomym tego, można iść na kompromisy, typu framework, ale tylko z SSR. To zapewnia w miarę sensowną równowagę między DX a UX.
Natomiast jeśli chodzi o sam podział na pliki, to najmocniej sformalizowany jest Angular, w którym niemal wszystko jest dokładnie opisane w dokumentacji i różnych konwencjach wokół. Jeśli nie odstrasza Cię mocno enterprise'owy kod, to Angular dokładnie Ci pokaże, jak powinieneś napisać aplikację. Z kolei React to praktycznie pełna dowolność – dzielisz jak chcesz.
ad. 2) Nie wepchasz PHP do webpacka, bo i nie ma po co. Jeśli chcesz podzielić aplikacje na backend i frontend w różnych technologiach, to pomyślałbym o wprowadzeniu REST API do komunikacji pomiędzy nimi. Wówczas te dwie części aplikacji staną się całkowicie niezależne od siebie i można je będzie rozwijać osobno. To np. pozwoli w przyszłości podmienić frontend (albo backend).
Przy bardziej "tradycyjnym" podejściu to obiło mi się o uszy, że ponoć bardzo popularne jest łączenie Laravela z Vue – ale czemu, tego już nie wiem.
Osobiście raczej celowałbym w aplikację stworzoną z trzech części: frontendu, middleendu i backendu. W takim ujęciu frontend komunikowałby się z middleendem, który odpowiadałby za SSR i był pośrednikiem w komunikacji z backendem.