Temat nie należy do prostych. Dobrym rozwiązaniem jest zbudowanie autoloadera js, który mógłby dynamicznie wczytywać dane pliki, kóre byłby aktualnie potrzebne. Jednak to wymaga odpowiedniego nazewnictwa samych plików - oraz obiektów w nich używanych. Wtedy możesz sobie wyodrębnić te obiekty (bo funkcje też są obiektami w js), które używsz niemal w całej aplikacji + loader, a resztę specyficznych obiektów i ich metod lub grup ładować do poszczególnych plików. Wtedy łatwiej zapanować nad dołączaniem kolejnych plików.
Np.:
common.js - ładowany na każdą stronę,
stronaA - ładowany stronaA.js i jeśli w tym pliku odwołujesz się do jakiś obiektów (które będą wykorzystywane na innej podstronie także), to loader mógłby dynamicznie wczytać taki plik jak objektB.js.
Jest to zagadnienie ciekawe, ale trzeba się orientować jak działa js i co z czego wynika. Czyli przede wszystkim trzeba zachować odpowiednie
przestrzenie nazw, a nie używać globalnych zmienych. (to jest właśnie odpowiedź na Twoje pytanie - bo trochę się zapędziłem i zgubiłem wątek) Wtedy mamy pewność, że czegoś sobie nie nadpiszemy i nie doprowadzimy do nie przewidzianych sytuacji.
Każdy kij ma dwa końce, niby wszystko ładnie działa, ale przy złożonym projekcie może okazać się, że ładujemy dość dużą ilość plików i wtedy należało by oszacować, co z czym można połączyć by to zoptymalizować