All operating systems.
Broken: 2.74 and earlier
Short description of error
The FCurve implementation in Blender supports using quaternions (vec4) as keys. This is very nice and allows ones to use quaternions to specify the rotation of objects. But the FCurve primitive only supports two three types of interpolation, Constant, Linear and Bezier. The problem is that quaternions need to be interpolated using Spherical Linear Interpolation (AKA slerp), or Spherical Quadratic Interpolation (AKA squad). But from what I can tell is that blender actually uses Cartesian Linear interpolation on Quaternions. This generates proveably wrong answers. I am not sure if the best thing to do is add two new interpolation modes to FCurve (Slerp/Squad) or to add awareness of Quaternions Vec4s to FCurve so that Spherical interpolators are used for Linear (Slerp) and Bezier (Squad).
Either way this is a fundamental error in Blender that I think is relatively easy to fix.
Exact steps for others to reproduce the error
I've attached a *.blend file that demonstrates the issue.
The issue is reproduceable on the rotating text "TA" object between frames 50 and 60 as it is making a full smooth rotation. There are quaternions specified as keys for frames 50 and 60 and the orientation is correct at those frames, but the interpolated results from the FCurve are clearly wrong between 50 and 60 as the object wildly spins out of control in that time period. If Slerp or Squad interpolation was used by the FCurve instead of Cartesian Linear Interoplation the results would be correct.