Some application developers who use the Sparkle framework keep old versions in their appcast (by using multiple <item>
tags).
I think this practice would make sense if Sparkle showed the release notes of the intermediate releases when multiple updates took place since the last update (e.g. the user upgrades from version 4.0.0 to 4.0.5). However, Sparkle does not do that for some reason.
So why would you keep old versions in the appcast?
One motivation for keeping old appcast items around is to support older macOS versions as the required macOS version creeps up for updates over time. The latest item would have too high a <sparkle:minimumSystemVersion>
but some older ones would still be applicable. Then users on legacy versions of macOS would still be prompted to download the newest update that their macOS allows, even though it's not the most current update.