Нет, ключ на карте постоянный. Следовательно, проблема в том, что rename_it->first
является константой, но replace
является (конечно) неконстантной функцией-членом.
Если бы вы как-то изменили его, это изменило бы правильное положение записи на карте, но карта не может определить, что вы изменяете строку, поэтому она не может переместить запись. Чтобы избежать всей проблемы, модификация запрещена.
Вы можете удалить запись и добавить новую с другим ключом, но с тем же значением. Будьте осторожны с действительностью вашего итератора, когда делаете это.