for enemies i would recommend useing a family and make all enemie style a own sprite.
You can than make every option to the family and it will change for all enemies, you can set the strenght of an enemy just in it instances variables.
adding a animation with different images just makes sense in my opinon if you have for an example the same rock with different colors from purple to yellow or something.
Its very easy to work with but makes your sprite senseless big if you use 1 sprite for everything and will slow your game down.
I used this methode in a game where something just change its skin if the player gets leveled up, so i packed every skin in 1 sprite and made "set frame to level", its very lazy and makes my code smaller. But i know that it wound effect a lot in my game that i am makeing right now because it has no moveing elements and will hopefully dont make any lags.