Is there a rule for wordpress plugins developers to not do any database changes upon update?

The straight answer is “no” and it is also inpossible to have such a thing as code always depends on some DB format, and you can not just change the code without the DB.

What happens when you upgrade over several releases will depend on the quality of the plugins and the testings being done to them. You can almost always be sure that one “step” upgrades were tested but it is much more problematic to assume that multiple “steps” upgrade was tested well.

As always, the best thing is to do the upgrades on a staging enviroment, and do some sanity tests before doing anything on production.