While it might not cover all possible abuse of API, it does provide basic checks against most obvious usage mistakes.
BKE_fcurve_active_keyframe_index()