We use versions to allow for workflow updates or changes without disrupting live cases using the workflow.
Versions might not be necessary for all updates to a workflow. For instance, if you are changing some of the update options within a workflow, you will find that they seamlessly become available for selection within a case. Also, any update options that are removed, won't change any case update where these are set, it will just be removed from the possible update options for future updates.
Versions would be needed if you are completely removing a stage as there could be live cases where that stage is active, leading to any outstanding work potentially being missed.