Kinda curious why releases just aren't fully immutable? Sane semver would dictate any update should at least be a new patch release.
The way it's done with rubygems, if you messed something up with the gem (pushed secrets, etc.), you "yank" (remove) the release and push a new one (different version). You can't work with the files in a release once it's been pushed.