Я долго думал и решил оставить варинт по следующим причинам:
Cтатистический анализ чата (сделанный ранее для оценки сжатия) даёт нам длину большинства сообщений меньше 100 байт - это 1 байт варинта.
Я понимаю что 8000 байт - это ограничение телеграмма на длину сообщений в 4000 символов (UTF8!), но по статистике вероятность больших сообщений драматически падает даже раньше, так что не похоже что в чате был бы большой спрос на сверхдлинные сообщения и 16000 байт будет хватать в абсолютном большинстве случаев - это 2 байта варинта.
Вместе с тем, я бы не хотел ограничивать размер сообщения 65к байт, поскольку вижу вариант расширения чата в соцсеть, где возможны большие посты. Беглая выборка даёт мне пока посты-статьи на сотни тысяч символов... в сжатии это всё ещё меньше 65к, но уже достаточно близко.
Другие используемые мной стандарты (multihash и CBOR) полагаются на использование разного рода varint. Поэтому использование плавающего размера целого числа скорее поддерживает общую логику, чем выбивается из неё. Кроме того, я не вижу в общем никаких конкретных преимуществ от фиксации размера целого кроме некоторого упрощения парсинга... а парсинг уже должен быть достаточно сложным из-за multihash.