Hey Gordon.
From what I can see with your example is that the problem occurs when you switch between left and right (or press toggle classes). The old view still uses the former class value and does not update when the class value toggles. This is because the leave animation (just before starting) destroys the scope of the view. The ng-class change doesn't update in time because the view changes first and then the class value.
I'm not having any luck fixing this in a clean way within your example. Perhaps ui-view as well as ngView can be changed to destroy the scope after the first digest has run (since by that time ngClass will have fully resolved itself and ngAnimate will still behave the same since it too is not triggered until after the digest).
I will open create a demo tomorrow with ngView and open an issue on Github if the result is the same as with ui-view.