The CompressionMetada holds the compressed block offsets in memory. Without being absolutely huge, this is still of non-negligible size as soon as you have a bit of data in the DB. Reallocating this for each read is a very bad idea.
Note that this only affect range queries, since "normal" queries uses CompressedSegmentedFile that does reuse a unique CompressionMetadata instance.
( Background: http://thread.gmane.org/gmane.comp.db.cassandra.user/21362 )