ага, как я понял, если создается ILGenerator, то он ожидает, что только эмиттить можно, а вариант с .CreateMethodBody() и заранее заданным массивом с байтами инструкций в нем не учтен. Поэтому в последующих версиях фреймворка и реализовали .SetMethodBody()