My думаю, состоит в том, что оно перекомпилирует приложение (и для небольших изменений это не будет означать, что его придется перекомпилировать) Затем, поскольку Microsoft создает и компилятор, и отладчик, они могут дать гарантии о том, как устроена память и тому подобное. Таким образом, они могут использовать API отладки для перезаписи сегментов кода новыми, если изменения достаточно малы.
Если изменения перенаправляют на совершенно новый код, очевидно, что он может быть загружен в память в стиле, аналогичном DLL.
У Microsoft также есть механизм «горячих патчей». Функции имеют 2-байтовую безоперационную инструкцию, обычно что-то вроде «mov edx, edx» перед любым реальным кодом. Это позволяет им перенаправить выполнение функции чисто. Это также может быть вариантом.
Главное, что нужно помнить, это то, что приложение не «работает», все его потоки находятся в остановленном состоянии. Таким образом, что касается процесса, любые модификации, которые делает отладчик, полностью атомарны.
Конечно, это все домыслы;)