(ISO/IEC 14882 16.3.1 : 実引数を代入する前に、実引数中の全てのマクロを展開する)
ので、Xstr(OP); ではまずOPが展開される。
ただし、#や##に対応する仮引数は先に展開されない(同 16.3.1)から、

うあw、酷い仕様ですね