Почему порядок выражения return и throw вызывает разные предупреждения о недостижимом коде

private static ext.clsPassageiro ConversaoPassageiro(ncl.clsPassageiro clsPassageiro)
{
     ext.clsPassageiro _result = new ext.clsPassageiro();
     throw new NotImplementedException();
     return _result;
}

показывает "обнаруженный недостижимый код" для return _result;,

private static ext.clsPassageiro ConversaoPassageiro(ncl.clsPassageiro clsPassageiro)
{
    ext.clsPassageiro _result = new ext.clsPassageiro();
    return _result;
    throw new NotImplementedException();
}

не показывает "обнаруженный недостижимый код" для throw new NotImplementedException();,

Почему второй случай не отображает предупреждение?