In several internet forums, I have seen some people mention that FLAC encoding actually is lossy, but in amounts that are barely measurable, let alone noticeable by a listener. I suspected that hypothesis might be true, so to test it, I decided to repeatedly encode and decode a constant tone, and then analyze both the amplitude and frequency after several cycles of encoding and decoding, representing several "generations" of encoding. I used a standard tone generator used to test sound equipment, run through a Mackie mixer into a USB audio interface and into a laptop PC running Cool Edit Pro.
The control was a 1000 Hz tone, which, under frequency analysis in Cool Edit, had an actual frequency of 977.09 Hz. The deviation from 1000 Hz I suspect was due to tone coloration of the mixer, despite the EQ controls being set to zero. In the end, though, it doesn’t matter, because the change in frequency or amplitude over successive encodings is what is being measured. The initial peak amplitude was set to be about -3 db, which the statistical analysis function of CEP measured at -2.82 db.
With those baselines established, I encoded the .wav file of the control tone to FLAC level 6 using Trader’s Little Helper. After every fifth encoding/decoding cycle, I opened the .wav file in CEP again, and did the frequency and statistical analysis. Even after 20 cycles, there was no change in amplitude. Frequency, however, had an interesting occurrence: between the fifth and tenth cycles, the frequency went up to 978.57 Hz, a change of 0.15 percent. This frequency remained the same through the fifteenth cycle, but went down to the original value of 977.09 Hz by the twentieth. Suspecting an error on my part, I started the experiment over.
This time, the data remained the same throughout all 20 cycles. I noticed, however, that the frequency reported by the frequency analysis changed, based on how much of the waveform was highlighted when I ran the frequency analysis. Armed with this knowledge, I returned to the data from the first experiment. This time, I highlighted the whole waveform every time I ran the frequency analysis, as I had done during the second experiment. This time, the frequency remained unchanged.
Conclusion: FLAC encoding does not change the amplitude or frequency of a waveform within the number of encodings that would be normally encountered. Therefore, I feel safe in stating that FLAC encoding is indeed wholly lossless.