Here is a summary.
Two patched versions available:
XBMC No Reinit
This version removes the call to CJoystick::Reinitialize() which prevents the crash when the controller disconnects.
Newly connected controller won't be detected.
This version should not crash. If it does, it does not come from the patch.
This version tries to handle the crash in the SDL layer more smoothly.
I have been using this version for a few evenings now without a crash and working disconnection/reconnection.
You should get less crashes from this version. Instead of crash I expect a non working controller after disconnection.
These .exe are to be used with the nightly builds. If your XBMC environment is too old, videos won't play and maybe you'll get unexpected crashes. This time each .exe comes with a .diff file indicating what was modified in the code.