>>103
I'm going to go ahead and agree with #103, even for non-JIT interpreted environments. The only difference is that non-JIT interpreted environments aren't affected by the NX bit, because the NX bit can only stop regions of memory from being executed by the processor itself. The same types of attacks that work on buffer overflows in native code foiled by the NX bit would succeed against the same flaws in interpreted environments.
So that means that #102 should, by their own admission, remove any copies of Perl / Python / Ruby / Java / Javascript / Lisp / Scheme / Haskell / Bash / Sh / Zsh / Ksh / Apple BASIC from their systems right now. Doubly so for Java / Python "Unladen Swallow" / Lua-JIT / half of Lisp implementations ever.
It's not "clever", it's the whole point of the Von Neumann architecture. If people thought we didn't need to execute main memory, we'd switch to Harvard architecture in a heartbeat -- processor performance certainly increases. But no, people only use Harvard architecture for dumb, fast things like DSP microcontrollers.
Enforcing the NX bit on all your programs' heaps is like trying to reduce home burglaries by nailing everyone's windows shut.