Railsのソースを読むと、

ActiveSupportのAutoloadで、

以下のようなコードがありました。

def self.extended(base) # :nodoc:
      base.class_eval do
        @_autoloads = {}
        @_under_path = nil
        @_at_path = nil
        @_eager_autoload = false
      end
end

extendされた際に、そのクラスに対して

クラスインスタンス変数を定義しているのですが

クラス変数を利用していないのは何故でしょうか?

クラスインスタンス変数とは違い、
クラス変数の場合は、継承先で親の変数を参照できるため、
上記のコードと同じ動作になると思っています。