The point is that I have done nothing that could corrupt the zwc file -
it's how zcompile generated it.
Two possibilities occur to me:
1. There is a maximum size of objects that can be zcompile'd, because it has internal pointers for loop and function entry points that are stored in a limited number of bytes.
2. You're running zcompile on one version of zsh and attempting to source the file on another.