というわけで感想

  • オートロードを使うという話もあるけど、たぶんクラスのロード処理も出てきそうな気もするので、インスタンス化メソッドを用意して局所化しておいた方が無難な気がします。。。
  • 'set'キーの構造(配列or値)が違うのがやはり気になる

扱いづらくなるとは思うけど、ロード時1回のみだしとかいっておく。
設定項目が異なるごとに分かれていた方がなんとなくわかりやすい(覚えやすい?)と思うのはダメだろうか?
'attr'はできれば使いたくないけど、バッティングを避けるには仕方ないんですよね。。。

$config = array(
    'class' => array(
        'foo' => array(
            'name' => 'Foo',
            'attr' => array(
                'message' => 'Hello, 1000speakers!',
            ),
        ),
        'baz' => array(
            'name' => 'Baz',
            'attr' => array(
            ),
        ),
    ),
    'primitive' => array(
        'key1' => 'val1',
        'key2' => 'val2',
        'greeting' => 'Hi',
    ),
);