パラメータ区切り文字の謎

ビルトインコマンドの多く( echo は違うようだが)で、パラメータの区切りに、空白の他、, ; = が使える。コマンド処理の時点で空白になっているようだ。
例えば、

dir a.txt;b.txt,c.txt

も可能だし、

for=%I=in=(A;B=C),do=@echo %I

では、A B C が1行ずつ表示される。
区切り文字として、空白やカンマはわかる。セミコロンも、PATH 等の要素区切りがそうなので、わからないでもない。しかし、イコールはどうしてだろうか?
昔を思い出すと、CP/M のコマンドでは、REN newname=oldname というリネームコマンドや、PIP destfile=srcfile というコピーコマンドがあった。そのあたりからの互換性を引きずっているのだろうか?
DOS コマンドでも、

ren oldname=newname

とは書けるわけだが、= の意味が逆だ。