the number in version.txt reflects latest release tag from the master branch (which is sometimes called main nowadays). also this would be frequently called main in debian repository and ubuntu PPA parlance.
i propose new stable-version.txt which should contain latest release from the v1.x-stable branch.
the debian or ubuntu repository in such a case will frequently have /stable/ in its url.
for example, if we ran the command right now, self-update would install v1.54 from download.rclone.org self-update --stable would install v1.53.4 self-update --beta the latest beta from beta.rclone.org
Right now the current v1.54-stable version has commits which haven't made it into v1.54.1 as that hasn't been released yet. That has a version number v1.54.1-beta.5153.da9dd543e.v1.54-stable right now. But it doesn't have any release tags on it at the moment.
When it does get a release tag the main version would become 1.54.1 - at least that is the way it works at the moment.
I think that if --stable meant install the latest beta from the stable branch that would be useful.
It would be nice if self-update could list what versions were available, install from branches and install a specific version number. So many features!
There is an old russian saying "better is an enemy for good". I am sorry that I started this discussion ahead of time. Let me stop me.
I will submit a new "implement self-update --stable" enhancement ticket on github, copy paste ideas from this thread there, assign ncw/ivandeex, mark it blocked on vanilla self-update.