I have not been able to figure out why so few major ones do. Of the OSI approved licenses, I think the only ones that say so are AFL-3.0, AGPL-3.0, APL-1.0, APSL-2.0, Apache-2.0, CATOSL-1.1, ECL-2.0, EUDatagrid, EUPL-1.1, GPL-3.0, LiLiQ-P-1.1, LiLiQ-R-1.1, LiLiQ-Rplus-1.1, MulanPSL-2.0, NPOSL-3.0, OCLC-2.0, OSL-1.0, OSL-2.1, OSL-3.0, RPSL-1.0, SimPL-2.0, Simple-2.0, UCL-1.0, osl-1.0, osl-2.1, and the Unlicense.
Only AGPL, GPLv3, and Apache 2 from that list are really widely used.
Much less talked about than whether or not you can revoke a license, but probably as important for most open source licenses, is what happens if rather than trying to revoke the license you try to stop issuing new licenses?
Take GPLv2. Suppose I license some code I own to Alice under GPLv2. Later Alice gives a copy to Bob. Where does Bob's license come from?
GPLv2 says, "Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions". GPLv3 has similar language.
If I say that I'm no longer going to issue licenses, and sue Bob for copyright infringement, what will his defense be?
He could argue that my license to Alice obligates me to issue a license to him. That falls under an area of law called the law of third party beneficiaries. Commonly you run into that in situations such as life insurance. I enter into a contract with a life insurance company to benefit specific third parties named in the contract, and that gives them some rights to sue to enforce the contract even though they are not a party to it.
I haven't seen much analysis of how the law of third party beneficiaries would work when applied to an open source license, but I'm not optimistic it would do much. Third party beneficiary rights tend to be weak at best if the third party is not a specific entity that the contract was made specifically to benefit. Someone downstream from Alice might be too vague to be a third party beneficiary, and it probably gets worse the farther downstream they are.
How about Alice? She could probably intervene to force me to honor my license to her and issue Bob a license. That's still going to put a damper on downstream redistribution. If you want to use the code without much legal worry, you'd need to make sure you got it from someone who would be willing to intervene if you got sued by me.
As with the revocation question, this too could be avoided be better drafting of the licenses. It's not a problem for Apache 2, for example, because the Apache 2 license grant is "a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form".
The key in there is "sublicense". When Alice gives Bob a copy, Bob can get his license directly from Alice via her use of the sublicensing right I gave her.
I think that the only widely used open source licenses that do this are Apache 2 and MIT.
The GPL family specifically says that you cannot sublicense. I think they did this because they did not want people using sublicensing to give out licenses that did not include all of the GPL rights. Better would have been to allow sublicensing but to explicitly say that when you sublicense you must include all the rights that were in the license you received from upstream.
There is some case law around that in France. A software company makes GPL software or library, a contracting firm uses/modifies it, reselling the result to some clients.
In 2 cases I am aware of, the final client was the government and sued the contracting firm for breach of contract (the GPL is a contract) and won. (Winning is relative of course because the client can't use the software they paid for anymore and years are passing by in court).
The contract creates a chain of contractual responsibility, which I am not an expert in, but as far as I understand it opens any party to being sued by any other party.
Yes it means that GPL developers, by giving an open contract to anybody who is willing to take it, are pretty much opening themselves to be sued by the entire world.
In practice you sue for a purpose (maximizing damages :D) so the purpose guides whom to pursue on which grounds.
Now to answer your question... what happens if you decide to cancel the license? Well, you can't unilaterally cancel a contract on a whim.
Since the entire issue is that gratuitous licenses are, as a matter of law, revocable by notice regardless of their surface conditions, no, it wouldn't.
Such terms may make downstream licensees more secure that, in the event of revocation, courts will limit the effect of that revocation to avoid them incurring undue loss based on their reasonable reliance on the promises in the licenses while it was being offered under principles like promissory estoppel, though.
Edit: it just occurred to me that even if that is true, its salience here might depend on what "gratuitous" means and whether it applies to the license in question. (I reiterate that IANAL, so usual cautions). Proponents of copyleft licenses would claim that licensor and -ee are both receiving value. The licensor receives the value of improvements and enhancements to their original work while the licensee gets access to the base system and permission to modify it to their needs as well as sharing the licensor's protections and value on their own contributions. There seems to be a plausible argument (reminder: IANAL!) that an exchange of value has occured.
The Blue Oak Model License takes reliability a step beyond even Apache 2 and GPLs, with an express statement of irrevocability (in plain terms) and an express statement that terms are both conditions and contractual obligations. https://blueoakcouncil.org/license/1.0.0
If you're really down in the weeds, probably best to send me up an e-mail.