Mm, I like the idea of using libpng. Even if it doesn't help with other formats, PNG is easily the most popular when it comes to 2d games. It does look like stb_image doesn't have complete JPEG support either, though (no progressive support, for instance).
From what I can see,
DevIL seems to use libpng internally and provide an easier interface for it. At the same time, it supports many other formats.
But again, I have almost no experience with image loading libraries. I have always used higher level libraries like SFML to do it for me.
In any case, I really think using libpng would be a great idea, no matter the approach.