I have to second what @dreta said about coming up with the game first, and figuring out what you may need... That being said, since you're using SDL for 2D, obviously SDL has lots of libs that were made just for it to help you out. SDL_mixer, SDL_ttf, SDL_image are all obvious choices for basic tasks. Box2D, Torque 2D, ODE are all great choices for physics, ODE though it's recommended to be outdated and is technically no longer under construction officially, was used by the game World Of Goo. Which has incredible physics and I've not seen a single physics glitch in the three times I've beaten it (personally).
As far as graphics go, it's well known, easy to set up, and perfectly acceptable to use OpenGL built into your SDL games, even for 2D graphics. One game to name that isn't released yet that we're expecting new videos on soon is the http://elysianshadows.com/ project which uses OpenGL accelerated SDL, for 2D.
For XML I stick with tinyXML almost all of the time, it's a great library and it works extremely fast with relatively minimal overhead. To me it just feels cleaner than other XML libraries.
PS: I didn't really get into the other stuff you mentioned, because it looks like everyone else provided great answers for those.