Причины, которые я вижу:
Качество кода
Авторы STL (либо его интерфейс, либо реализация для ваших компиляторов), несомненно, на порядок лучше, чем лучший разработчик в вашей компании.
Их задача - создать пригодный для использования STL, что означает, что каждая функция / метод / объект в любом случае подвергается тщательному тестированию.
ремонтопригодность кода
С оборотом некоторый код может медленно и незаметно остаться без поддержки. Это означает, что если в этом коде есть ошибка или если ее производительность или интерфейс отсутствуют (см. «Качество» выше), то вы не найдете никого, кто мог бы ее профессионально улучшить.
Изменение кода будет иметь ненулевую вероятность регрессии кода в другом месте, и если ваша внутренняя библиотека не подвергнута модульному тестированию, эта регрессия будет оставаться незамеченной в течение довольно долгого времени.
И я даже не упоминаю синдром «Я никогда не коснусь этого слизистого кода», когда кто-то пытается исправить код, просто обнаруживает, что не понимает, почему это было сделано таким образом (из-за макросов, странных условия и т.д ..
Заключение
Объедините их, и вы обнаружите, что для универсального кода (то есть массивов, строк и т. Д.) Вы добьетесь большего успеха благодаря медленному переходу от собственных библиотек к библиотеке STL и написанию «функций преобразования» при необходимости .
Я думаю, что этот вид миграции является частью обслуживания вашего кода, и вам следует медленно (т.е. с новым кодом или при рефакторинге), когда это возможно, использовать STL вместо собственных универсальных библиотек.