Перемещающий конструктор - это С++проблемы, в большинстве языков
даже понятия-то такого нет. Происходит он от хорошей годной
привычки STL хранить данные по месту, а не кидать ее в куче. Но с
этим и куча проблем возникло, которые он призван решить. "Псевдоитератор" - ну вообще есть такая вещь как генераторы (или вообще корунтины), которые позволяют завернуть в обход цикла аж отдельный стек вызовов. Окромя диких мест, когда нужно делать обход больше одной степени вложенности, я предпочитаю таким не пользоваться.
Ну и шаблонная магия крестов прекрасна, но лучше дождаться распространения концептов.