This idea that WavPack and FLAC are fundamentally different because one compresses files and the other compresses audio is no longer true. The current native WavPack format is
not tied to a particular audio file format. It
is the case that the command-line compressor only accepts wav files and the unpacker only generates wav files (or raw audio data), but this is because not a single person has ever asked for any other format. I could easily add other formats without breaking anything.
I have dedicated two metadata field ids for storing images of the RIFF data so that a wav file can be perfectly recreated (one is for RIFF data that comes
after the audio). But these fields are not required to interpret the audio information, are ignored by plugins (except Audition which uses them), and do not restrict the format in any way. A similar mechanism could be added to FLAC so that it too could, if desired, make perfect copies of wav files. Certainly this would not hobble the format or detract in any way; it would simply be an additional feature.
(I am, of course, not suggesting this be added to FLAC. Given the enormous popularity of FLAC, I need every niche I can find!
)It would have been nice if I had set up wvunpack to create a basic wav header if there wasn't one in the WavPack file, but I didn't. So now all WavPack files must contain at least a 44 byte wav header because I think it would be silly to break old wvunpack versions to save 44 bytes, and the encoding library now transparently generates this if the application does not supply it.
While it is correct that in a perfect world I would interpret all the RIFF subchunks and convert them into some internal representation, this is simply not tenable. First, there are simply too many different ones to handle, new subchunk types are constantly being added, and some people have simply defined their own. Also, in some cases, converting back to RIFF might not be lossless because there is some flexibility in writing the subchunks (for example, the order or whether or not items are collected into a LIST chunk).
Obviously nobody would complain if an MP3 encoder discarded RIFF data. However, because archiving is one of their primary uses, I believe that lossless audio compressors are different. That extra RIFF information is part of the archive, and the fact that FLAC discards those unknown subchunks simply makes it unusable for some (albeit rare) applications. The fact that WavPack saves them does not similarly make it unusable for any current or future application (except maybe for the guy that specifically wanted them discarded, for whom I have now provided an option).