Для второго случая достаточно просто раздельных куч при общем адресном пространстве. Живой пример -- erlang. Это в принципе на уровне языка просто сделать, или даже библиотек.

Со злым умыслом всё сложнее. Если убрать аппаратную изоляцию процессов, т.е. защиту, то лично мне совершенно непонятно как при общем адресном пространстве на текущем железе мне кто-то помешает нагадить в чужую память. Язык меня, очевидно, тоже ограничить не сможет, ибо язык один -- асм/машкоды. А всё остальное препроцессоры к нему.Разве что распространять программы только в исходниках (как бы это ни называли -- байткод, деревья франца, или как-то иначе. один фиг это исходники требующие последующей компиляции) более высокоуровневого безопасного языка с последующей компиляцией перед исполнением. Но насколько это будет эффективно и удобно?