Yes, you are right. I think that i'll add this in a way similar to your workaround to the next release. Anyway, the operation (cloning of animated objects) as a whole is a little questionable. A cloned object (A') uses the same Mesh as the object it has been cloned from (A). In case of animated objects, this will cause A' to perform the same animation as A and vice versa, because the same Mesh will be manipulated from within both objects. This behaviour is mentioned in the documentation of the getMesh()-method in Object3D.
If this is a bug or a feature...you decide...
In some cases, the behaviour can be exactly what one wants and in some other cases, it's exactly what you don't want. If you don't want it, try to add
retObj.setMesh(origObj.getMesh().cloneMesh(Mesh.COMPRESS));
right after you've cloned the object. That should make it use the same animation data (which is a good idea) but perform the animation on a different Mesh.