Очень немногие архитектуры реализуют уровень защиты памяти (только у ОС есть доступ на запись в области памяти, содержащие код), о которых вы говорите, в тех, где Java использует JIT, определенно нет.Вирусы используют эту функцию и даже больше для быстрого распространения.Но когда вы думаете об этом, нет ничего изначально опасного в процессе, изменяющем его собственный код.Это не более опасно, чем возможность записи в файл и загрузки библиотеки.