Я не настоящий лоулевелщик, не понимаю, зачем нужны varints. По их примеру 42000 кодируется 3 байтами, 24 бита, но этот же инт просто 16 бит (и очевидно это так до 65536). чтобы закодировать 2**32-1 им надо 5 байт (40 бит), но это же всего 32 бита. в чем профит?
Не знаю, о ком речь, но... В твоём примере, ты не учитывает, что они, полагаю, помимо этих 16 бит инта в 24 битах могут закодировать так же ещё (например) и 23 бита Инта - условно 0xFF, а потом 16-битный, или первый ноль, а потом ещё 23 бита. Говоря же в общем, ситуации могут быть разные, но когда мы говорим о неких усреднённый хранимых данных, маленькие числа встречаются, чаще, чем большие, а тратить 40бит на 32битное и 16бит на 8битное, против тратить 32 бита на все становится выгодно, если количество 8битных чисел в наборе больше 2/3.