Жив ли самомодифицирующийся код?
самомодифицирущийся код гораздо сложнее чем такой же по функциональности, но не самомодифицирующийся код :) как в понимании так и в отладке.
с учетом современного развития и жуткой дешевизны аппаратных ресурсов на фоне дороговизны человеческих, вымерло как излишество.

на заре компов помнится читал описание игры в которой какие-то игровые функции формировались прямо во время работы игры.
сколь помню, был большой набор исполняемых кусков в файле, из которого копированием в память формировались цепочки исполнения, на начало которых CALL'ом передавалось управление, а в конце был обязательно RET.
периодически цепочки переформировывались.
и по идее, это одно из направлений анти реверсинга.
Направление "защиты от реверсинга" достаточно давно ушло в сторону виртуализации кода.
Такие инструменты как Themida, VMProtect, Enigma, etc при минимальных затратах времени и (самое главное) умении пользоваться этими инструментами - позволяют достаточно надежно защитить критические части приложения. 
На данный момент лучшими инструментами (сугубо личное мнение,  сформированные на основе опыта использования различных протекторов,  а также на отзывах самих реверсеров) являются продукты Oreans Technologies (WinLicense, Themida, Code Virtualizer).
Сильные виртуальные машины (которых более десятка) + широкие возможности кастомизации позволяют доставить немало проблем реверсерам.