не знаю точного ответа. могу предположить что это так потому что так удобнее со строковыми литералами работать кторые уж точно иммутабельны. если нужна мутабельная строка то нужно конвертнуть в подходящий массив с учетом кодировки
В v8 какая-то хитрая штука есть, что новые строки хранят ссылки на старые. Сложновато замутили, но это сделано, видимо, чтобы избежать аллокации большого объёма памяти на новые строки. Ну т.е например, let a = 'some long text 10 kb'; let b = a + '***';' - вот для b не будет выделяться и копироваться 10 кб, она просто будет хранить ссылку на а и создание новой строки произойдет довольно быстро