>>14There really is a separation of data and code. It's not "just" executable data. That's a big difference, whether it's something to simply exist and be observed, or instructions to execute! Have you never heard of DEP (Data Execution Prevention), NX bits (No Execute), and ASLR?
Of course, there are ROP techniques for trying to get around this stuff, but still...