It's a tiling window manager written in Common Lisp, which means I can change any of the behavior on the fly. I guess you can do the same with xmonad, but I don't know Haskell, I do know a bit of Lisp.
Unlike a lot of tiling window managers, it does user-defined "static" layouts. You start with a single frame covering the whole screen. You can split that vertically or horizontally. You can then split either of the new frames vertically or horizontally, and so on. When I used to use i3 and xmonad, I'd get annoyed when my windows kept moving around and resizing whenever I opened/closed a window. Now I have a few different virtual desktops with layouts I find useful. Browsing on one, with a big frame for the browser and some smaller ones on the sides for xterms. Programming has half the screen for emacs, the other half for an xterm or two.
It takes a second or two to start, because let's face it, modern Lisp implementations are slow to launch, but once it's running it's quite responsive. Memory footprint isn't tiny (we're running a full Common Lisp system here), but I'd wager it's still smaller than KDE, GNOME, or Unity.
One thing I really loved was that the default keybindings were good. The default keybindings in WMs like i3 often eat a bunch of bindings for other programs--I had a hell of a time using i3 and emacs at the same time, for instance. Most of the commands are prefixed with a Ctrl-T, so you'd hit "C-t c" to create a new terminal, sort of like doing an Emacs command (C-x C-s). Yes, I know you want Ctrl-T to open a new tab in your browser; to send a Ctrl-T, you just hit it twice (C-t C-t). You can also add keybindings to the running WM using a little snippet of Lisp code, and if you like it, stick that in your .stumpwm file so it works every time. I left most things default but added Alt- to switch between desktops.