Quick thought: the next Emacs should probably spawn a new process for each buffer (like Chrome). (This also means that Emacs' buffer-local variables are trivially implementable as dynamic variables.)
Buffers should only be accessed through a RESTish protocol, with a couple of verbs.
And of course, we gotta drop plain text and the file system, and switch to a 2D-visualizable hypermedia/hypercode format, stored in a hyperdatabase.
But, and that's important, the rest has to stay the same. The good stuff.