Есть ли причина, по которой unique_ptr::reset не имеет перегрузок, которые принимают const deleter& и deleter&& для соответствия его конструкторам, которые принимают их как второй аргумент?
Сохраненный дебетер в unique_ptr был бы скопирован или перенесен с аргументом из reset. Если делектор является не подлежащим копированию или невозмутимым, вызов соответствующей перегрузки reset не будет компилироваться. Похоже, что это будет согласованное поведение с конструкторами.