O isdigit pode legitimamente ser dependente da localidade em C

Na seção que abrange setlocale, o padrão ANSI C declara em uma nota de rodapé que as únicas funções ctype.h cujo comportamento não é afetado pelo código do idioma atual são isdigit e isxdigit.

A implementação da Microsoft de isdigit depende da localidade porque, por exemplo, em localidades que usam a página de códigos 1250, o isdigit retorna apenas zero para caracteres no intervalo 0x30 ('0') - 0x39 ('9'), enquanto que em locais usando a página de códigos 1252 isdigit também retorna zero para os dígitos sobrescritos 0xB2 ('²'), 0xB3 ('³') e 0xB9 ('¹').

A Microsoft está violando o padrão C ao tornar o código de idioma isdigit dependente?

Nesta questão, estou principalmente interessado no C90, ao qual a Microsoft alega estar em conformidade, e não no C99.

Contexto adicional:

A documentação da setlocale da Microsoft afirma incorretamente que isdigit não é afetado pela parte LC_CTYPE do código do idioma.

A seção do padrão C que cobre as funções ctype.h contém algumas palavras que considero ambíguas:

O comportamento dessas funções é afetado pelo código do idioma atual. As funções que possuem aspectos específicos do código de idioma somente quando não estão no código de idioma "C" são indicadas abaixo.

Considero isso ambíguo, porque não está claro o que está tentando dizer sobre funções como isdigit, para as quais não há notas sobre aspectos específicos de localidade. Pode estar tentando dizer que essas funções devem ser consideradas dependentes do código do idioma, caso em que a implementação do isdigit da Microsoft seria boa. (Exceto que a nota de rodapé que mencionei anteriormente parece contradizer essa interpretação.)

questionAnswers(2)

yourAnswerToTheQuestion