gameObject や transform と書くだけで参照できるのは、EnemyAiがComponentを継承しているから。
Componentクラスには、gameObjectやtransformが定義されている
http://docs-jp.unity3d.com/Documentation/ScriptReference/Component.html

「EnemyAi : MonoBehaviour」だから、MonoBehaviourしか継承していないんじゃないの?と思いきや、
MonoBehaviourも別のクラスを継承しているから、実際の継承の関係はこうなってる:
Object←Component←Behaviour←MonoBehaviour←EnemyAi