Excellent & detailed write-up. The later ZX81 is best regarded as a ZX80 with some minor (but important!) tweaks.
Hard to understand, is effect of the semi-separated data buses (D0..D7 vs D0'..D7'). This is an intricate play between cpu, ROM code, signal timing & external hardware (external to cpu, that is).
Aeons ago I designed a ZX81 ULA replacement in programmable logic, and couldn't shake the feeling that with adjusted signal timing, it might be possible to get things working on a single 'unified' data bus. If I ever touch this again, I'd have a serious look at that.
But I suspect the way it was done, is because the signal timings allow for very slow ROMs and/or RAMs (up to ~450 ns iirc). This was important, since (to keep costs down) Sir Clive was buying memory ICs wherever he could find 'em cheap. Remember £99 for a real, user-programmable computer was the ZX80's #1 selling point.
As gxd noted, this was when people did not have computers in their homes. No PC, laptop, tablet or smartphone. NONE. Perhaps a pong console if lucky. So people were very curious & eager to find out what could be done with such a machine. Regardless its limitations, or how crappy its keyboard ;-)
https://archive.org/details/Cheap_Video_Cookbook_Don_Lancast...
talks about how to build homebrew video systems similar to the ZX80.
He kept the thing running for many years beyond the point where the technology was obsolete.
I remember seeing them on the electronics store my father used to go to, for work related components.