Concerning the inconsistences, I found some points:
sf::Sprite:
- the method to get the size on the screen is GetSize().
sf::String:
- the method to get the rectangle (and the size about it) is GetRect().
- but GetSize() returns the font size.
I think this is a little bit confusing. For me, both classes are quite similar, so why once using a Rectangle and once a 2D-Vector?
And another thing is the base class sf::Drawable. I think, there is no GetSize() method because of inherited sf::Shape and sf::PostFX, right? I don't use those 2 classes often, but don't they require a size? If yes, would make polymorphism easier (for example you don't have to overload specific functions for sf::Sprite and sf::String)...
And what I is also not really consistent, is GetSize() vs. GetWidth() or GetHeight() methods. For example Sprites use GetSize().x or GetSize().y, and the "greater" classes like sf::Image or sf::RenderWindow use GetWidth() or GetHeight(). And why did you implement sf::View::GetHalfSize()? Is that for people who don't want to write sf::View::GetRect()::GetWidth()/2?
Or because of 2D-Vector (now there's again the question why a Rectangle with 2 specific size methods).
What's the reason for these things? They might follow a simple logic, but at the moment I don't really see it