That's why there are two separate methods on this class - Add (at the end) and Set (anywhere). Both outperform the corresponding ImmutableList<T>, according to the article.
Kind of: Set returns a new Vector with a changed state (the specified element overwritten).
But yes, this implement is very sparse: there's no way to add and remove elements in the middle, no way to even tell how many elements are in the list: https://news.ycombinator.com/item?id=8592178
Perhaps omitting them hides some different optimisation choices (i.e. they would be more expensive)
Maybe it's just a proof of concept?