The problem with Emacs' configuration file is that it's processed in an additive way. Removing options and reloading the config does absolutely nothing. So in certain situations a restart is just inevitable.
But aside from that Emacs, like most programs, has a UX philosophy that I can't stand. And while Emacs lets me change that I don't want to manually redefine things for every single filetype and mode I'm using. Vim just does it right unless I make the mistake of writing JS in HTML files.