This is available to developers already but only through a rather obscure interface (the build API page). It's also often rather useful e.g. dealing with pushes on projects branches or even inbound that are known to be broken and for which running more jobs is just a waste of time and money.
This might just be a dupe of bug 1139948
Indeed, and that even has a half an explanation of why using self-serve is fine, because it doesn't kill coalesced jobs, except that using self-serve is a bad idea, because we just broke the reason it was fine to kill builds, because it used to clobber the slave doing a build that was cancelled, and fixing that is pending a decision about whether or not it's worthwhile making it not be a horribly expensive mistake to cancel builds.