Don't forget there are loads of programs out there that allow artists / animators to use sprite parts to generate animations. Sprite part animations allow parts of animations to be recycled for multiple animations by using 2d bones / joints, key frames & meshes to update the position / rotation of sprite parts & for warping parts in case of meshes.
They are most useful for side-scrolling games, such as platformers & games that tend to scroll sideways only. Front / back walk cycles are not so easy to create with sprite parts, but I suppose they may be a bit more possible these days to a degree, when done in combination with warp meshes.
Anyway. Nice little post.
P.S: by the way. The amount of frames & fps & all that is somewhat irrelevant. Typical animation should consist of something like 4 to 32 frames, depending on the animation / situation. Also there is no reason at all for duplicated frames for getting the timing right, as VS allows you to define custom pause values between each frame as opposed to a global value - of course you can use a global value instead, but manually defining pause values for frames can save a lot of vram & hd space, seeing as it's not having to load as many frames for each animation.