Хорошее ли решение — для каждой страницы сайта писать JS в замыканиях?
У вас ошибочное понимание о том, что такое замыкание.
Но да, вынести в отдельные области видимости не помешает.
Хорошее решение: не забыть удалить ссылку на анонимную функцию замыкания после того, как она не нужна, если используете динамическую загрузку (AJAX/SPA): здесь подробно.