コマンド実行時のエコー表示の謎

バッチススクリプトでは通常先頭で、@echo off するので、デバッグ時以外はコマンド実行のエコーを目にすることはあまり無い。
最近気づいたのだが、以下の一部のオプションなどについて、小文字で入力しても大文字になってエコー表示される(WXPで確認)。

  1. if の /i オプション および equ, neq, lss, leq, gtr, geq の各比較演算子
  2. for の /r /f /l 各オプション
  3. for の /d オプションは何と d が表示されず / だけが表示される。これは /D と大文字で書いても同じだ

既に書いたように if と for の構文解析は早い段階で行われるので、何かその辺が関係しているのか?しかし、for の in や do は小文字のままである。if の /d に至ってはバグだろうが、何故 d だけ?どんなバグなんだろう。