Advertencia C4996: esta función o variable puede no ser segura, en comparación con GCC en POSIX

Noto que los compiladores de MS dan advertencias "obsoletas" paracstdlib funciones comogetenv. MS ha inventado su propio estándar como_dupenv_s.

Pregunta 1

AFAIK lo principal "inseguro" es sobre reentrada *. Dado que el CRT de MS está marcado como "multiproceso" (/MT), ¿por qué no solo reemplazangetenv con la versión reentrante y segura para subprocesos? ¿Es como si alguien dependiera del comportamiento inseguro?

Pregunta 2

Compilé el mismo código con GCCg++ -Wall -Wextra -Weff++ -pedantic foo.cpp y no produce ninguna advertencia. ¿Entonces supongo que esto no es un problema en POSIX? ¿Cómo se resuelve esto? (OK, tal vez simplemente cambiaron el comportamiento degetenv, sería bueno tener esto confirmado).

* Es una generalización excesiva decir que solo se trata de reentrada. Por supuesto que tenemos cosas comostrncpy_s que cambia la firma por completo y trata el tamaño del búfer. Pero no cambia el núcleo de esta pregunta

Respuestas a la pregunta(3)

Su respuesta a la pregunta