I really never understood what the hype around having support for message boxes was all about.
Yes, I admit that when context creation fails, there isn't much left you can do to convey some useful information to the user. But what would this information contain? SFML context creation already dumps a bit more verbose output as to where it failed directly to the console, so if it is hidden, you will never find out exactly what went wrong. All I can imagine that is said in such a message box is: "Something went wrong. Check the console for more information.". Since it would make sense to check the console after getting shown a message like this, why wouldn't it make sense to just use the console as the standard method of outputting errors all the time?
Message boxes are really only mandatory on Windows, since it has a standard window manager and the UI is the primary environment in which you execute programs and receive feedback about why they fail to initialize properly. The console on Windows is something that is left for debugging at most. Some Windows users might not even know that there still is a command prompt that they can run.
If you compare that to the "standard" way of doing things on UNIX (Linux, BSD, etc.) systems, they are not even similar. Anybody who can call themselves somewhat familiar with any of these UNIX systems will automatically check the console for information when something goes wrong. It is simply convention on those systems. In fact, I can bet with you that they will find it awkward, and maybe even annoying to see small windows popping up in their face time and again when something unexpected happens.
Also, don't forget that it isn't even mandatory to have a window manager running on a UNIX system at all. I've even tried this out of interest, and gotten a fullscreen OpenGL application running straight from the console without any desktop environment active.
If, and this is a really big if, SFML would support a standard way of conveying fatal error messages, it would be via message boxes on Windows and the standard error stream on all other systems. It just follows from what is already considered convention, and SFML doesn't like to fight against that. Since this is more or less trivial to implement in your own code with not too much use of the preprocessor (Windows knows it has to make it easy to use its MessageBox API for obvious reasons), wouldn't this be something that you could write in a utility file somewhere and reuse whenever you need to?