Если они не чувствуют, что они являются "частью реализации", то есть стандартными библиотеками, то они не должны.
Правила довольно специфичны и немного более подробны, чем предлагали некоторые другие.
Все идентификаторы, которые содержат двойное подчеркивание или начинаются с подчеркивания, за которым следует заглавная буква, зарезервированы для использования реализацией во всех областях, т.е. они могут использоваться для макросов.
Кроме того, все другие идентификаторы, которые начинаются со знака подчеркивания (т.е. не сопровождаются другим подчеркиванием или заглавной буквой), зарезервированы для реализации в глобальной области видимости. Это означает, что вы можете использовать эти идентификаторы в своих собственных пространствах имен или в определениях классов.
Именно поэтому Microsoft использует имена функций с начальным подчеркиванием и строчными буквами для многих из своих основных функций библиотеки времени выполнения, которые не являются частью стандарта C ++. Эти имена функций гарантированно не конфликтуют ни со стандартными функциями C ++, ни с функциями пользовательского кода.