I'll mention what I did for handling content since I was very, very pleased with the results.
Basically, what I wanted was a generic content manager that loads any type of content (sounds, graphics, fonts, etc) all on the fly on-demand, with the ability to stream it in the background for pre-fetching (nobody likes to wait). I also wanted to assign a "level" to each content, which included: Temporary, Map, Screen, and Global. These values stated when automated collection would take place. Temporary was always cleaned on collection, map was cleaned when changing maps (which also cleaned temporary), etc. Most importantly, if I tried using any content that was not loaded into memory, it had to auto-load into memory.
With SFML, this was insanely easy, and was my major motivation to change from XNA. With XNA, almost all of what I listed above was a nightmare since it had its own content management system that was very strongly locked-down. With SFML, all I had to change on the SFML side to accomplish this was the lazy loading. To do that, I just created my own derived classes that accept the filename at construction, then override the accessor to the internal reference pointer so that, if it was not loaded, it loads right then and there. If its loaded, continue on.
Very easy, but works beautifully.