According to the DEFLATE specification (RFC 1951), the literal and length alphabets are combined in order to be decoded using one huffman tree. The literal and length alphabets are both 256 symbols large, but the combined literal/length alphabet is 286 symbols long, one of those symbols being an end-of-block character.
There are only 29 out of the possible 256 length symbols represented in the combined alphabet, with extra bits being included in the compressed data after the length symbol in order to read the full value of the length when decoding. These extra bits are not compressed, being read as literal machine integers.
Why not include all 256 length values in the combined alphabet, to get a literal/length alphabet of size 512 (513 when including the end-of-block character)? Would this not compress the lengths better?