Action not played if animated object is not inside the view frustum?

As the title says and the answer I’m looking for is “no, you’re wrong”. Lie if necessary.
I have a mech, the legs of the mech are animated through an action.
The mech has two cameras, a third person one and a first person one. When in first person, the camera doesn’t see the legs, when in third it does.
And here’s the thing: when I’m in first person view and I call “legs.playAction” the legs don’t move but if I’m in third person view and I call the same code, the legs do move.
I do not remember this behavior in the blender version I used for my previous iteration of the game - which used the same animation code.
Before to make a test file, grab it and throw myself out of the window, did anyone else notice this “new and odd” behavior?Thanks.

http://www.blender.org/api/blender_python_api_2_74_5/bge.types.KX_Camera.html?highlight=frustum#bge.types.KX_Camera.boxInsideFrustum

Type “frustum” in the search box here: http://www.blender.org/api/blender_python_api_2_74_5/contents.html

I made a test because this thing completely baffles me.

weird_armature.zip

In the test case (start the embedded player to run), a wall falls or not depending on:

  1. the kind of animation (armature deform or plain action)
  2. the player sight (won’t fall if the armature is not in the frustum but will fall anyways if it is a plain action)

Does anyone else see a very bad decision taken here? I mean, an animation is both a visual and logical element of a game, the engine should skip the deformation of the mesh but it should not avoid the entire animation.
When the player looks at the wall, he should see it on ground whether or not he was looking at the wall when the fall event was triggered.

It can be a good thing, it means that armatures outside the view are not draining resources, but yes it has some strange side effects. it also doesn’t interact well with the API, since if you call isPlaying() or try to get the current frame number using python it doesn’t give consistent results. The animation is still playing according to the python level interaction, it didn’t end, but it is paused, so if you have any code which relies on animation timing it can get really screwed up.