"If $wmli_opt['opt_entireblog'] == '1', the plugin is not applied at all when gzip is on."
Yes, I get that, but you're going to have to do a little debugging here in order to figure out where the problem is and figure out how to work around it.
The important thing is this: If you have opt_entireblog on and also turn on gzip, then does wp_link_indication() get called at all, ever, and if so, what is in $content when it is called? You may need to change wp_link_indication to have it spit $content out to a file or something in order to figure out what is going on.
What I think is happening is that the gzip_compression itself uses an ob_start(). However, plugins execute first, and so your output buffer is on the outside of the gzip output buffer. Therefore, when the page ends, the gzip output buffer is executed first, and your buffer gets back the already compressed data. So you match nothing, and voila.