можно создать новый объект в маленькой области видимости, переместив в него объект из большой области видимости auto new_obj{std::move(obj)}; если у вашего объекта есть конструктор перемещения
Явно деструктор нужно вызывать только если вы создали объект через placement new. Например когда работаете с std::aligned_storage. Если хотите удалить его в середине скоупа - используйте std::unique_ptr::reset() .