У меня есть мысль, что если не разбивать на блоки по числу букв в слове, то будет еще большее сжатие по моему алгоритму, т.к. больше будет одинаковых букв между соседними словами.
Моя теория подтвердилась! Написал новый архиватор по этому алгоритму, 14969 слов упаковалось в 36722 байта, а по старому алгоритму - в 38617. Теперь пишу дизархиватор на асме, а количество слов в словаре уже можно смело увеличить до 14000.