The issue is that when a FLAC encoder encounters digital silence, it uses the highly efficient constant subframes. On 44.1kHz audio using the default blocksize, the bitrate drops to about 1.3kbit/s for all bitrates and number of channels. For CDDA, which can peak to 1412kb/s this is a range of over 1:1000, for multichannel and 24-bit audio, this gets even worse. Seeking gets difficult because of the large fluctuations in frame size and streaming gets difficult because buffers run empty.
At first I thought this should be non-issue, as all audio should be dithered. However, requiring dithering isn't really lossless and not really user-friendly either. So, I wrote this bit of code which prevents the FLAC encoder from outputting frames that only contain constant subframes. With this code, the minimum bitrate the FLAC encoder uses (for 44.1kHz audio, irrespective of the number of channels or the bit depth) becomes 45.4kbit/s.
I could change libFLAC to include a switch somewhere to trigger this behaviour, but that would also require streaming software using libFLAC to be changed to benefit. Moreover, that wouldn't solve the seeking issue, which can be a problem to any user. I suspect the minimum bitrate increase isn't really an issue for normal users (i.e. it won't hurt compression for most music) because frames with only constant subframes won't happen often in music. Perhaps it should be disabled when --lax is used, because --lax can be used to create non-streamble FLAC files.
However, I'd like to know what you think.