Does it have anything to do with Von Neumann / Harvard architectures basic design premise?
One separates executable code from data code, and the other doesn't?
Just wondering if stuff was designed with Harvard design, would the flaw exist.... (because separating user executable code from kernel executable code would follow...)
PS... I'm completely ignorant and guessing here. Help.