If this sounds familiar to you, it probably should. What I've described is essentially identical to how emacs manages buffers and windows (analogous to X windows and panes in the above, respectively), with window-number.el and either iswitchb or ido. I manage hundreds of buffers in emacs this way, and complicated screen layouts, whenever I'm doing any hacking, and I love it.

I would in fact be tempted to write my window manager into emacs itself, except for the annoying fact that emacs is very much single-threaded. It's already annoying enough when network drops and a hung network filesystem takes down my emacs waiting for a timeout; It would be utterly unacceptable if that took down my entire window manager, too.

I'd alternately be tempted to try to make this an XMonad plugin, but I think that it's sufficiently different from XMonad's data model that the impedance mismatch would suck.