Unityはこれね
http://docs.unity3d.com/Documentation/Components/animeditor-AnimationEvents.html

The parameter can be a float, string, int, object reference or an AnimationEvent object.
The AnimationEvent object has member variables that allow a float, string, integer and object reference to be passed into the function all at once,
along with other information about the event that triggered the function call.

これはあれかfloat, string, object, AnimationEventの4種類のAddCallback()関数があって
内部的にも5種類のイベントを保持して回してるのか・・・
力技だがそれ以外に実装は不可能。