Классической инкапсуляции в JS нет и, надеюсь, не будет.
Наиболее приятный в использовании вариант - Symbol, причём он и самый надёжный, так как исходный символ всегда спрятан в модуле и извне поле под таким ключом изменить нереально. С прочтением тоже огромные проблемы, так что тут в полный рост используются сеттеры и геттеры.
1. У вас this будет или undefined или window (зависит от строгости режима), но уж никак не vue экземпляр.
2. Мутировать коллекции во vue лучше операциями с исходным массивом, а не заменой свойства полностью.
Вот тут проблемы не вижу вообще.
Выделите стили и скрипты, которые безусловно общие для всех страниц и их подключайте всегда.
А специфичные ресурсы подключайте только там, где надо. Вы удивитесь, насколько быстро всё станет грузиться.