- Triangle Strip: Use degenerate triangles.
- Triangle Fan: Just don't use too many of these. There is only so much you can do with them, and it's not like you can't emulate them with a textured quad instead...
- Line Strip: Just use lines instead. You are "wasting" merely 1 extra vertex per primitive.
You have to remember, OpenGL is a pipeline. Pipelines don't like to stop and if you force them to they will annoy you with bad performance. You will get much better performance by shaping your geometry into "pipeline friendly" geometry instead of thinking of how to save draw calls through secondary data structures. Saving draw calls only benefits you if you are driver-bottlenecked, which to be honest almost never happens in a typical SFML application. When dealing with large amounts of geometry in SFML, it will probably be the memory bandwidth that kills performance, since all the data has to be transferred again and again every single frame.
I just don't see how your suggestion will change anything for the better. It won't increase performance in comparison to an optimized draw sequence. It won't make anything easier for the developer to do, since they will have a bigger API to deal with. In really pessimistic scenarios, misuse can even lead to decreases in performance.
If you are not convinced that batching everything into a single call is possible, look at this screen capture of a Super Fidelity GUI:
(http://i.imgur.com/coPPuey.png)
That whole GUI is rendered using...
4x glDrawRangeElements with GL_TRIANGLE_STRIP
The only reason why it isn't 1x is because the viewport changes 3 times.
And if all else fails, and you really need that raw performance, remember that SFML doesn't go out of its way to prevent you from using raw OpenGL. It might be annoying at times, but it is possible, and the annoyances are currently being addressed one by one.