The current world should be renamed first, so it's not overwritten, something like worldname_old-DATE perhaps
The backup should be restored to a new folder instead, like worldname_restored-DATE
In both cases, the existing world is preserved and the person restoring can make sure that everything is working as expected before deleting the previous world or whatever they want to do with it. May also be worth zipping the previous world to save disk space. This could be locked behind a config setting, but I really would never expect anyone to want differently. I'm partial to the first option so that journeymap etc are preserved immediately when opening the restored world.
When a backup is restored, I think either:
In both cases, the existing world is preserved and the person restoring can make sure that everything is working as expected before deleting the previous world or whatever they want to do with it. May also be worth zipping the previous world to save disk space. This could be locked behind a config setting, but I really would never expect anyone to want differently. I'm partial to the first option so that journeymap etc are preserved immediately when opening the restored world.