Cork Output is not always Solid!
It is possible to present highly degenerate input to Cork such that the result of a Boolean operation is self-intersecting. AFAIK This can only happen when highly degenerate input is given. The problem here has to do with geometric rounding of the output mesh.
The proposed solution to this problem is snap rounding.
I read up some on snap rounding. I need to look at it in a bit more detail, but it seems like a sound approach. If snap rounding is implemented with some kind of smart surface fragment merging, (i.e. two merging surface fragments should annihilate each other) then that should resolve this issue safely. That is, the issue should be resolved sufficiently that the output of Cork can always be used as new input without the possibility of a crash.
It will not resolve the problem that tiny sliver geometry might be generated. That's impossible to resolve without stating how "slivery" is too slivery, and how much surface perturbation is acceptable to remove slivers. Such geometry can always be removed by an independent post-process on the output of Cork.