Ах, ссылка, опубликованная Патриком, включает в себя следующее: «Имя typedef uint_leastN_t обозначает целочисленный тип без знака с шириной не менее N, так что целочисленный тип без знака с меньшим размером не имеет по крайней мере указанной ширины».
Итак, мое текущее понимание:
uint_least16_t самая маленькая вещь, способная удерживать уинт16
uint_fast16_t самая быстрая вещь, способная удерживать uint16
uint16_t точно uint16, к сожалению, может быть недоступен на всех платформах, на любой платформе, где есть, uint_least16_t будет ссылаться на него. Поэтому, если бы он гарантированно существовал на всех платформах, нам вообще не понадобился бы uint_least16_t.