WM_UNICHAR is only available since Windows XP.
And for all codepoints in the
Basic Multilingual Plane (in range [0 .. 65535]), UTF-16 == UTF-32. So it could be a problem for codepoints outside the BMP, which require two "characters" and therefore two WM_CHAR messages. I haven't tested it though.
But characters outside the BMP are rarely used (almost all characters of today's languages are in the BMP), and I don't even know how they would be "typed" -- probably with some kind of virtual keyboard.
So... let's say that the day someone complains about SFML not being able to process non-BMP characters on Windows, I'll work on a fix (which will be to convert UTF-16 to UTF-32, not to use WM_UNICHAR)