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.
Oh no, persistency is great. But the problem is how non-functional their implementation is.
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.