If you think that awesome wm is bloated, try dwm on which awesome wm was historically based. The key bindings look the same.
After I've noticed that I haven't used 90% of awesome wm functionality, I moved to a dwm which is basically 2k lines of readable C code in a single file and never looked back - it's so easy to configure it to do exactly what you need.
I discovered that my mostly vanilla XMonad was basically the same as DWM. My only gripe with DWM is that I needed to patch the code, compile, and install my own to turn my worthless windows key into the magic window manager key.
I feel like DWM takes non-configurability literally one key too far.
Yes it does. It's that much code that needs to parse config files and translate it to useful configuration. Oh and of course it needs to be backwards-compatible.
The dwm authors believe there already is something to write your configuration, parse it, test that its syntax is valid and use it to configure the thing: the C toolchain.