А тут разве не вопрос в движке JS?
Ну потому что когда-то на было много статей по памяти в JS и там как раз показывались различия в хранении примитивов и объектов.
Я вполне допускаю, что раньше это работало как я описал (исходя из озвученных выше статей), но сейчас все оптимизируется и сейчас это работает как Вы написали.
Я вам предлагаю провести эксперимент. В цикле создать 10 тысяч переменных которые ссылаются на очень длинную строку. И сделать тоже самое создавая новую строку каждый раз. И запустить этот код под профайлером. Сравните потом потребление памяти, думаю вы удивитесь.