It's true that self-closing, non-void elements are not valid. With gzip, it's probably not even worth the savings in size. I know it's bad and we shouldn't do it and it will probably blow up in our face one day, but it doesn't seem to matter in practice and I just like the way it looks.
Save a couple of bytes here and there, and you may save a whole packet; saving a packet when your packet count is small can make a big difference in download times, since TCP slow start means lots of round trips in the beginning of a connection. Also, less data transfered is good for people with data caps, and lets your server do less work. That said, you'll probably get more out of making sure your images are optimized, and apparently changing from sprites to fonts (if your target audience supports it).