да вообще-то и примитивные данные тоже могут. Строки, например - не думаю, что движок js будет копировать каждый раз целую строку, он использует ссылку на нее. Просто у примитивов нельзя изменять свойства, вот и все. На уровне программера в js нет понятия ссылки или значения.