やはり俺が
unsigned proc(unsigned a, unsigned b)
{
  return a > b ? 10 : 20;
}
のような定数を評価するコードと勘違いしたのかも。

上記のコードなら
  moveax, dword ptr [b]
  movecx, dword ptr [a]
  cmpeax, ecx
  sbbeax, eax
  andal, -10
  addeax, 20
  ret 0
に展開された。ごめんよ。