After a quick look at OpenAL, I don't see that this would be particularly hard. SFML "knows" which sounds are playing, because it's got to be dealing with populating the AL buffers... right? (?) You might lose a bit of buffer, but I doubt anyone's writing military-grade communications systems with SFML. All that's required is to check for error states, and if there's an unrecoverable error, just clean up the old context and create a new one. Swapping out a pointer to the context would mean not much more needs to be done - any music that's playing will pick back up when the buffer next gets written, and sounds would recover too. The only fly in the ointment might be the listener, but if you abstract the refresh of the context to another method, that should be manageable.
All I need to do to switch to OpenAL (via OpenTK probably) is to put together a class that manages the data and streaming it into the OpenAL buffers, either from file (like SFML Music) or from memory buffers. The worst part would be integrating a Vorbis decoder.