フレーム絡みの初期化は make-frame のタイミングでなされるようになってる。
ただ、無駄に走らないよう (get window-system 'window-system-initialized) が nil の時だけ
window-system-initalization-alist に登録されてる関数を実行する仕様になってるみたい。
フォント絡みの初期化もそこでされている模様。
だから --daemon で起動した場合は emacsclient -c とかでフレーム作られるまで fontset-standard も存在しない状態になってるね。

before-make-frame-hook の中で
(unless (get window-system 'window-system-initialized) ....) でかこってフォント設定かけばいいような気がする。
ただ default-frame-alist の読み込みは before-make-frame-hook の前に実行されちゃうから
そこに関しては hook の外で設定しないとだめっぽいね。