I don't know if this has been suggested yet but I think implementing IList and IList<T> interfaces for VertexArray would be very useful.
That wouldn't really be feasible, first it would require implementing methods that even the core SFML doesn't support for the vertex array. And second, there is no smart way to implement
Insert(...) and
RemoveAt(...) functions. It would just be a big complicated copy operation.
Now that I think about it, you could probably implement them for Shape too.
We already decided that we need the existing design to make it clear the intention of the Shape classes.
Isn't it rather IEnumerable<T>?
It is, so if we want the foreach syntax for the vertex array we could implement this instead of trying to implement other interfaces that don't make sense.