We had a similar use case . This definately not be handled through permissions as replace and move operations basically are doing delete on the hind side . Only option is to hide delete through UI but your authors also use desktop app. So , don't think this is posisble without restricting/ compromising on the feature.