It's done on purpose to set `current_version`, see the test I added.

Without this:
- app is public_waiting, any new version ends up being the current_version, even if not reviewed
- app is public, current_version is the latest public one
- app is something else, any new version ends up being the current_version

With this:
- app is public, no change from above
- app is public_waiting, current_version is the latest public_waiting
- app is something else, no change from above

Did I miss something ? Maybe we should have more tests around this.