I've done some research and discovered that there are four ways to animate an object or prim.
Destroy the object and recreate it several times, one "state" for each frame or position.
Make the object with the multiple "states" or frames built in with prims and step through them via hiding and showing with alpha levels.
Create textures for each state of the animation and rotate the textures based on the desired animation.
Rotate, move, and locate using built in LSL functions.
My thoughts on these three are mixed. The first option works if you're moving between two static states. Say a flower bud going from closed to open. However if you have a continuous or detailed animation IMHO this might cause some lag. I don't know enough about the details of the prim creation/destruction stuff to know.
The second option seems to be a waste of prims, unless you've got something that is continuous or detailed. A bird flying with detailed wings, tail and head for example. I believe it would be smoother because you would be able to setup each frame of the animation and do timing of the parts.
The third option would work for displays that have a 2d component or linear motion that does not require much variation. A vehicle panel, store sign, or panel that changes based on user input.
The last option to me would be the best for simple animations or animations that react/interact with the sim. A small dragon familiar that sits on an avatars shoulder that looks where the avatar looks or a floating/following pet.
I'm very new to scripting, building and texturing and am interested in others opinions. I've several ideas for objects that are animated and would like to use the most efficient option for each. Not only server/client efficiency also code/building efficiency. I don't mind putting in some time making and coding the prims/objects to make it server/client efficient yet I don't have all the time in the world to do it.
Any ideas that folks want to share I would love to hear.