FWIW: I am using mostly a customized Motion-JPEG variant for animated textures.
this basically consists of an AVI video with individual compressed JPEG frames.
in my case, it has extensions to support transparency and additional features (such as normal/depth/glow maps).
the decoder is actually somewhat custom, and does a few "interesting" things (for example, it can decode directly into DXT1 or DXT5 textures, without needing to first decode to RGBA).
also, interestingly, it tends to be somewhat faster than my PNG codec, despite JPEG being a somewhat more complex format than PNG. I have attempted faster codecs, but thus far have yet to come up with anything "solidly better" here than the current JPEG variant. (both are "reasonably fast enough" though, this mostly matters for video type uses...).
a drawback of standard M-JPEG though is that it doesn't support transparency (this is a format extension in this case).
as for GIF, its main downsides I think are basically that it is limited to 256 colors, and FWIW the compression isn't as good (as the same-frame count and resolution for an M-JPEG image, ex: 256x256x10 frames -> 325kB GIF, vs 202kB MJPEG, vs 890kB MNG).
an advantage GIF does have though is that it is a fairly common animated-image format.
there is also APNG and MNG, which are sort-of-existing animated PNG variants.