And autoconverting GLuint 16bit on 16bit platforms would break your code. Slower code >> broken code any way you slice it.
Btw, GLuint is defined as 32bit on all platforms - that's why it exists. (Otherwise you could have just used "unsigned" and be done with it.) I know, because I've checked.
cstdint is not part of the language and many modern
compilers don't ship with it. You can't fault library writers for working around problems such as this one. If they waited for the TR board to fix C++ and compiler writers to update their compilers, they'd probably die of old age.