Ответ сильно зависит от того, как ваш компилятор реализует обработчик purecall. Если компилятор просто заменяет «чистые» указатели функций в ваших таблицах виртуальных функций, тогда вы не можете изменить поведение родительского процесса.
Но некоторые компиляторы реализуют пользовательские обработчики purecall, вызывая ваш обработчик из обработчика CRT. В этом случае поведение будет зависеть от того, как вы создали свою DLL. Если вы статически связаны с CRT, то у вашей DLL будет свой экземпляр всех состояний CRT. В этом случае реализация компилятора не имеет значения. Ваш обработчик purecall не будет вмешиваться в родительский процесс.
С другой стороны, если вы динамически связаны с CRT, поведение будет зависеть от того, как был построен хост-процесс. Если бы он был динамически связан с той же версией CRT, что и ваша DLL, тогда ваш обработчик purecall действительно мог бы помешать. Но опять же, это зависит от реализации компилятора. Даже если он вызывает ваш хук из CRT, вы можете быть в безопасности, если CRT поддерживает разные хуки для каждого модуля.
В любом случае, если вы хотите быть уверенным в безопасности, вы должны либо статически связать свою DLL с CRT, либо избегать использования обработчика purecall (альтернативой может быть использование конкретных базовых классов вместо абстрактных).