In my obsessiveness I just couldn't resist one more experiment with Remove Reinstalls. The result surprised me. Here's what I did:
Had been running Win10 1903 with three previous KB's. (A Service Stack (now obsolete I think) and two others.)
I did a "clean" Refresh to 1909. That is, I did not run 1909 through the Host Refresh Wizard's PreSet before refreshing.
The 1909 wim had only two KB's. A new Service Stack. And a cumulative update for .NET.
After 1909 was running, I removed Components using NTLite.
And then I ran a "complete cleanup" using NTLite.
At this point, I didn't expect that there would be any 'Reinstalls" to remove, since 1) I had removed everything ahead of time using NTLite, 2) I hadn't installed any cumulative updates, so nothing should have been reinstalled over what I had already removed, and 3) I had run NTLite's Cleanup, which should have removed all traces of what I removed in 1).
Nevertheless, Remove Reinstalls found a bunch more stuff to remove. Those pesky languages, which I reported earlier in the forum as a possible bug. Windows Defender - which I thought I had removed with NTLite hours before. Others. See log, attached.
So, it seems that Remove Reinstalls should be called "and Deep Cleaner" too, and perhaps users should run it regardless whether they've installed a cumulative update.
Or should NTLite's Clean up catch these things?