pub fn session_needs_compression(session: &Session) -> bool
Pure predicate: does this session need compression? Extracted as a free function so it can be unit-tested without constructing a full service.