Hm... I'd actually consider it rather interesting being able to construct a sf::VertexArray from other sf::Drawables. Sure, there's still the danger of the internal representation changing between versions (like strategy used to draw a quad), but overall I could imagine some interesting ways to extract/combine multiple things.
I could even imagine some way to combine multiple drawables, although that might be something for later (SFML3?).
For example, rather than building a tile map from a sf::VertexArray, someone could just set a sf::Sprite to the correct texture rectangle and position, then add it to a sf::VertexArray, which acts as a buffer.
Something like this (let's ignore optimization like clipping for now):
sf::VertexArray tileMap;
for (int y = 0; y < height; ++y) {
for (int x = 0; x < width; ++x) {
sf::Sprite tile;
// set texture, texture rect, etc.
tile.setPosition(x * tilewidth, y * tileheight);
tileMap += tile; // vertices are copied into the vertex buffer
}
}
// later on:
window.draw(tileMap); // draws the whole tile map in one batch
However, I don't think setters should be added, especially considering the basic shapes aren't defined by their vertices and there's no simple way to solve odd cases, like assigning an irregular shape to a circle or something like that.