I agree that it is not in SFML's scope to build a logging mechanism. However, it would be nice if the library was more flexible about how it reported messages.
SFML could store an ostream instance with the system core. System would then provide a mechanism to set the ostream used, it could default to std::cerr. In this way the behavior hasn't changed but SFML gains the ultimate flexibility in reporting messages.
A flexible error reporting feature would allow application to use that message data anyway the choose. Capture it and display it in a message box, log it to a file, send it out over a socket, all of the above, or some other bizarre use that neither you nor I could dream up. It could even be used to cause SFML to throw exception instead of report errors, though admittedly that is a real kludge. But it does go to show how much flexibility extending the error reporting system would give.
If there is interest I could provide a patch. Then all you'd have to do is review the changes. Which should be minimal, except for changing all to references to std::cerr to sf::System::err().