el objetivo de un sprite es evitar el exceso de peticiones HTTP por cada imagen en una sola, muchos FW con GUI lo hacen, como jQueryUI o ExtJS, pero en algunas partes los sprites no se pueden usar.
por lo general el formato GIF es muy limitante, el PNG sin duda es el mejor, pero aún así si utilizas una paleta de colores fuera de la WebSafe 216 puede que los colores y tonos varían en función del navegador, no conozco mucho el tema, pero puedes investigar sobre ello, por lo general no he tenido problema con los PNG, quizás para un diseñador el punto de vista sea más preciso o mi astigmatismo no lo perciba