я понимаю почему этот warning есть и что он значит. Я не понимаю почему язык дает объявить defaulted operator которым все равно нельзя будет воспользоваться
Ну, по идее, раз оно не используется, то компилятор бы и так его выкинул. Как с шаблонами, если в них косяк, но они не инстанцируются, то и хрен бы с ними.