Not sure what kind of limitation you’d suspect to exist.
Usually versioning only goes forward, you wouldn’t like to have an existing version to be altered after having devices setup and possibly locked to a particular version nor would you want a device running on v10 to go back to v9 for any reason.
But if you are still developing you might want to mark the respective device as dev device in console to prevent a forced OTA revert to an officially submitted version.
If you had a device assigned (explicitly via console or implicitly via
PRODUCT_ID()) to a product of your own, you need to remove that device from the product in console and flash new code without the macro (best via USB to prevent implicit reassignment).
If you happened to use a “foreign” product ID, your device probably got quarantined there and hence you may need to have support to take care of freeing your device for you.