Something that drives me nuts is how stateful about:config options are. If you set them once, either through about:config or using a user.js, they will stay like that forever unless you explicitly unset them.
There exist good cases for instant persistence, like switching themes when you want to see the effect immediately before you decide.
Other than that it's really nice to be able to cancel everything when you realize you've messed up.
Say I write a user.js file with a few options. I can't have the typical dotfile model, where removing options from this file will lead to defaults on the next run. I need to unset them. Explicitly.
Thus, using a dot file to set up Firefox (user.js) is incredibly clunky and people don't use this much.