apacheのSetEnvとSetEnvIf

リクエストヘッダを参照してACLを設定したい。中で環境変数を設定して、その環境変数をAllowで参照する。ってことでこんな設定ファイルをかきました。

<Directory "/hoge">
  <If "-n req('X-hoge')">
    SetEnv fuga
  </If>
  Order deny,allow
  Deny from all
  Allow from localhost
  Allow from env=fuga
</Directory>

ところが、期待したとおりに動作しない。全部denyされる。ヘッダが設定されていないのかと、Forrensicログをとってみたところ、ちゃんと設定されている。
おかしいなぁとドキュメントを眺めてみても文法的にはあっている。
ふと思いついてこうやって見たら期待通りの動作。

<Directory "/hoge">
  <If "-n req('X-hoge')">
    SetEnvIf REQUEST_URI .* fuga
  </If>
  Order deny,allow
  Deny from all
  Allow from localhost
  Allow from env=fuga
</Directory>

SetEnvで設定した環境変数と、SetEnvIfで設定した環境変数では参照できるディレクティブに違いがあるのか。うーん、バグじゃないか、という気がする。