ActiveSupport.onload と ActiveSupport.run_load_hooks のコードを読んでみました。

両メソッドともにActionSupport::LazyLoadHooksのモジュールで定義されているメソッドになります。on_loadを呼び出すと@load_hooks[name]にProcが格納されます。run_load_hooksを呼び出すと@loaded[name]にbase(Procの呼び出し引数 or instance_evalのコンテキスト)を格納するとともに、@load_hooks[name]のブロックをbaseのコンテキストで呼び出します。

ActionMailerの例だと、ActionMailer::Baseの最後の行でActiveSupport.run_load_hooksを呼び出しています。これはActionMailer::Baseのmix-inやメソッドの定義などが全て終わったタイミングで、hookの処理を呼び出すためです。

RailtieなどでRailsのモジュールを拡張する場合にも使われ、以下のように対象のクラスがロードされたタイミングでクラスを拡張できます。メソッドなどがロードされた状態なのでmethod missingにもならないし、もちろんクラス自体も存在します。