This seems more like a philosophical issue to me. What is captured in a snapshot isn’t depending on what has been captured in any other snapshot. If you have a snapshot on 01.01.2021 you will have all the files available from that point in time. If you create and delete files between this snapshot and any other snapshot, these files won’t be in the new snapshot. A snapshot doesn’t span any amount of time.
To me, it is really not important, if the first snapshot gets removed down the line, as this is not, what a backup is meant to do. You might want to think about an archive, instead of a backup.
Also the label “first” imposes some issues… if you chose to assign the label for a specific retension class to the first occurence of a snapshot in that class, how would you manage to keep the latest then? Also, on the first snapshot, all the labels which are set to be applied to the first occurrence would all reference the same snapshot…
I think, it would make sense, to have a snapshot have an attribute “lock” which you could manually set and thus keep that particular snapshot from being removed by the automatic housekeeper jobs.