Huffman encoding successive-merge function
It's been a while since I've done any Lisp/Scheme, but I'll make one style point and one algorithmic point.

Style point: it's usually more readable if you define structure projection functions with meaningful names rather than using car, cdr, etc.

Algorithmic point: the simplest way of doing this is to include some priority queue structure from the standard library.  Then you simply remove the two least items from the queue, create their combined Huffman tree, and reinsert them into the queue.  You're done when the queue contains only one item.