O JIT se recusa a incorporar métodos minúsculos

Estou perdendo otimizações sérias porque o JIT não incorporará muitos dos meus métodos.

Por exemplo, vamos ter o seguinte código:

static void Main(string[] args)
{
    IsControl('\0');
}

public static bool IsControl(char c)
{
    return ((c >= 0 && c <= 31) || (c >= 127 && c <= 159));
}

Produz o seguinte após a compilação JIT:

0000001f  xor         ecx,ecx 
00000021  call        FFFFFFFFFFEC9760 
00000026  mov         byte ptr [rsp+20h],al 
0000002a  nop 
0000002b  jmp         000000000000002D 
0000002d  add         rsp,38h 
00000031  rep ret 

Observe que0000001f é onde eu defino o ponto de interrupção. Como você pode ver, há uma chamada em00000021, isso é absolutamente errado. Por que um método tão minúsculo não seria qualificado para embutir? Para a nota, isso foi compilado com otimização ativada.

questionAnswers(5)

yourAnswerToTheQuestion