For me it’s mostly a matter of preferring to edit a human readable file instead of going through a GUI (KM, BTT) or a JSON (Karabiner).
Here’s how I usually do it using Sublime Text:
I don’t use Karabiner anymore (Superkey has replaced it for me as I only used it for Hyper and some navigation bindings), I never used Keyboard Maestro, and I only use BTT for the Trackpad gestures.