1 - itoa требует работы в стиле си, т.к. класс string не дает доступа к своему буферу на запись. поэтому itoa в c++ весьма неразумно. для этого дела специально созданы потоки.
2 - если это не узкое место программы - значит проблем нет. прекратите думать за компилятор, предсказывать узкие места по производительности. занимайтесь лучше программированием предметной области. если же это есть место проблемы - тогда да. берем и оптимизируем, убираем потенциальные выделения памяти, лишние операции. все заменяем на простейшие операции. но только после подтверждения факта проблемы. а вы боритесь с проблемой, которую сами придумываете.
удачи. далее спорить влом.
кароч, если пишешь на си - пиши. тока не лезь в с++, а то выглядишь очень глупо.