I don't really understand why even after 10 years they still haven't figured out a sane way to handle keybinding settings.
The default behavior is completely asinine. In other words, if you have had a USB joystick or controller connected and configured custom keybinds for it, and then one day make the mistake of launching the game without it connected, the game just happily defaults all your keybind settings without even asking. Then when you later launch the game with the controller connected, all your keybinds are gone and you'll have to to configure them again. This is absolutely asinine.
There's the officially undocumented trick of manually creating a separate keybindings config file (described in the pinned comment in this very subforum) which "protects" your custom settings from being silently overwritten by the game. But still, even though it's not as destructive, the behavior is asinine: Again, if you make the mistake of launching the game without the controller connected, the game will silently switch to the default keybinds config file (probably restoring it to defaults if it wasn't already, I would assume). Then when you launch the game with the controller connected it will not automatically switch back to your custom keybinds, but you need to go through all four keybinds categories in the game's settings and re-select your custom bindings.
I have never seen any other game do this kind of thing.
That's not how it should work, and no other game works like this. It's great that the game supports distinct keybind config files (something that few games do), but this support is very lacking (there's no way to create new custom config files from within the game, and you have to do this manually from outside the game, using a process that's officially completely undocumented) and, most importantly, the behavior of the game where it automatically resets and switches to the default config (and never switches back) depending on what's connected on your USB port, without asking or telling you, is asinine.
At a very minimum resetting keybinds to defaults should be done only as an explicit user action. The user clicking a button. It shouldn't be done automatically without asking. Resetting to defaults is an important feature (after all, your current custom settings might be completely unusable after a change in input devices), but it shouldn't be done automatically without asking or telling the user. At a minimum launch a popup that says something like "your previously used input device (name name) is not detected. Do you want to reset all keybindings to defaults?"