I'm not a fan of dwm: I tried it several times, and didn't like it. But I do like dwl, because it's a great starting point for writing a Wayland compositor.
I use it for three things: first, Puppy Linux now supports running the traditional X desktop inside Xwayland, which runs inside dwl-kiosk: dwl with a patch that make it maximize the first Wayland client. Second, I'm working on "pure Wayland" support for Puppy: a patched dwl that makes all clients float and asks them to draw their own decorations. This is an attempt to replace JWM with a patched dwl that acts more like a traditional, floating window manager, and get rid of the overhead of Xwayland. Third, I'm trying to write a Wayland equivalent of cwm, my favorite X window manager. To make it maintainable, I'm building it as a series of dwl patches, each in its own branch.
I think the best thing about dwl is how hackable it is. I don't like some coding style (for example, alphabetically-sorted funtions) and design (for example, the 1:1 relationship between windows and monitors) decisions, but the wlroots API is very nice to work with, and high-level operations like moving and resizing windows are super easy to do using the (relatively) new scene graph API. The long list of patches in dwl's community-maintained list is nothing short of inspiring, for any small project that strives to be hackable. It's a bazzar of features and modifications, and you can cherry-pick what suits you. I'm thinking, maybe I should do something similar with gplaces.