Предполагается, что класс deque в STL хранит копию элемента, который вы передаете его методу push_back. Вот откуда появился один конструктор копирования.
Если вы избавитесь от ссылки в addMove (), вы сначала получите копию параметра (и, следовательно, один вызов конструктора копирования), а затем, когда вы вернетесь назад, вы получите вторую копию.
Двойной вызов конструктора копирования является расточительным, поэтому ссылка предпочтительнее. Однако вы должны объявить параметр addMove () как константную ссылку, чтобы указать вызывающей стороне, что элемент не будет изменен. При таком заверении (при условии, что вы не нарушаете его), безопасно передавать объект по ссылке, не беспокоясь и не платя штраф за копию объекта.