When you do an animation.clone() and then push that animation to another object. Then change the values on the animation keys manually it modifies both the original values and the new cloned animations.
My work around was to do animation = BABYLON.Animation.Parse(animation.serialize()), but I figured the fact the clone does not change the variable scope of the embedded values would be a bug.
https://playground.babylonjs.com/#Q02V3P#20 <- clone
vs
https://playground.babylonjs.com/#Q02V3P#19 <- Serlaize Parse