As someone who uses a few remapped buttons and “drag scroll” (i.e., using the trackball as a huge, 2D mouse wheel), being able to do those mappings on the device firmware level is amazing.
Applications like Karabiner-Elements and Steermouse on macOS, or interception-tools on Linux (or even X keyboard layouts), or Autohotkey and X-Input Mouse Tool or whatnot all exist, and they’re also great. But they all need separate configuration that you’ll have to maintain, and they all have their own quirks and caveats such as not working the same inside Remote Desktop windows. Not to mention latency/priority issues, or anti-cheat.
Life is a little easier when the firmware of your input device emits the events that you want in the first place…