The origin of a drawable should always be updated
I was proposing for SFML to handle this. Thus, when I set the origin of a text to its center, then update the string in the text, I wouldn't have to worry about updating the origin as well.
The problem with this is that the required result of this can be dependent on its use, especially with text.
For example, when you change a character in all lower case string to its capital, the text would move downwards. Most often, it's best to find the "best" centre for the text and then keep that when changing the string. Note that I'm, here, talking about the y value only; the x still needs updating. Also, this is more complicated for multi-line text.
My main point really is that sometimes you may want to allow it to move the text so that the true centre is where you position and sometimes you may want to text a centre based on a 'usual baseline' and centralise the x, meaning that, since that this decision is made by the user, the user should probably centre the text manually.
Of course, you can add simple functions to do this automatically in the specific way you want it, if required. For example:
void setTextString(sf::Text& text, const sf::String& string, const bool autoCenter = true)
{
text.setString(string);
if (autoCenter)
text.setOrigin( /* you know this bit ;) */ );
}
// ...
sf::Text text;
// set up the text including font and character size first!
setTextString(text, "Some string");