Indeed, the only exampled I can think of in Emacs with non-empty hooks are `kill-buffer-query-functions` and `kill-emacs-query-functions`. There are situations where it makes sense allowing the user to remove their functions. For quelpa they're mandatory.