I don't think so. They would be more intuitive in the situations you have in mind, but I can give you as many examples in favor of the current way of handling coordinates. The fact is that you'll always find people unhappy about a design choice when more than one solution is available.
Yes, that was only my view. I am not aspiring any alteration, but rather trying to reproduce the choice of the current sf::Rect design. I am aware of the fact every decision makes some people happy and some not. If you have got some time, it would be nice to see some of the examples you mentioned.
So the current method is more flexible, as it allows reverted rectangles
This is actually useful if you want to define a flipped sf::View, for example.
Okay, that is a point I haven't thought of. But I don't guess a rect like this is used often, is it? In contrast to SubRects of Sprites, for example.
But to me the most relevant point is that with your solution, sf::Rect would store two kinds of coordinates: a position and a size. So to be perfectly right, it would have to use two template parameters. This is not obvious with primitive types such as int or float, but what if you use a more complex type T as you mentioned? T may not be able to represent both concepts.
With the current implementation, T is a "position" coordinates for all members, and that's it.
But by strictly following this argumentation, the member functions GetWidth() and GetHeight() should return a type other than T, namely a difference type. This is not the case at the moment. But to be honest, I can't imagine a graphical use of a sf::Rect where position and difference are not compatible to each other. I know the concept from other things like pointers or iterators, still I can't apply this on graphical rectangles. Maybe I have just got too few fantasy...
My conclusion is that you can easily write your own functions / classes to get a sf::Rect from whatever using a width and a height, so go ahead
As I wrote, that's not the problem. I am already partially doing it like this. It's more a theoretic discussion, I hope you don't mind wasting time for something that won't affect the SFML library.
(You can consider it a variation to feature and help requests
)