If the maintainers are assholes and really won't fix the bugs in their product, you can either maintain your fix, maintain your fork (including new feature development and merging in changes from upstream), or switch to commercially-supported software.
I don't share that objection to forks; I don't find forks to be a problem. One can't do anything to change in the free software world, nor would I want it to change because changing that would mean losing the software freedom I value.
I am not against the forks, but we also have examples like openwrt/lede split.
My perspective on this is only against splitting contributor base because of maintainer mismanagement.
Edit: in your emacs example, it is much more beneficial your changes (and a lot of others) pushed back to main project vs multiple emacs forks with minor improvements.
I've used lemacs (Lucid emacs) and xemacs, and now I use Aquamacs.
As I recall, Lucid forked emacs because they, a commercial company with an emacs-based IDE, wanted to push changes faster than the FSF, a small non-profit dependent on volunteer labor, could accept them.
This turned into xemacs. My feeling was that xemacs was much better then emacs-for-x.
I think Aquamacs has better Mac integration than stock GNU emacs.
> LucidEmacs forked quite publicly from the FreeSoftwareFoundation’s implementation of Emacs in 1993. This was one of the more notorious code forks in the history of free software, probably because it was early and public.
I'm not sure it was seen as a "disaster", but it was certainly controversial, and negatively by many, so close enough.
I do think for Lucid it was seen as a feature, that is, they could fork and ship to customers.