Re: "if computers had totally separate data and executable storage"
"AMD even removed the feature in x64"
you sure about that? I'm pretty certain that x64 has executable and non-executable page flags...
edit: found this quote on wikipedia
"The No-Execute bit or NX bit (bit 63 of the page table entry) allows the operating system to specify which pages of virtual address space can contain executable code and which cannot. An attempt to execute code from a page tagged "no execute" will result in a memory access violation, similar to an attempt to write to a read-only page. This should make it more difficult for malicious code to take control of the system via "buffer overrun" or "unchecked buffer" attacks. A similar feature has been available on x86 processors since the 80286 as an attribute of segment descriptors; however, this works only on an entire segment at a time."
https://en.wikipedia.org/wiki/X86-64
thought so