I find with anything involving more than a few objects, BoolTool will often create something that has non-manifold edges and other problems in ways that I'm sure are deterministic but that I cannot predict. Apart from using FAR more detail that is necessary for spheres, cylinders, etc., none of it is really that complicated. Making a simple box with cylindrical holes in it, for example, will result in some faces having
The model below was just a repeated application of unions and differences of cylinders and cubes. It requires a ton of cleanup.
It's difficult to reproduce, but I found that, for example, when it creates an edge on a face I'm making a hole in, it will sometimes add a vertex at a place that doesn't intersect with an edge that's being cut out.
On the bottom is a vertex that makes sense to me. There was an edge of the shape of the cut intersecting the face I'm cutting out of. On the top, however, it added a vertex between two such vertices. This resulted in a non-flat face. Both of those vertices are just running an edge out to the corner of a cube.
I would accept as an answer "don't use BoolTool; use something else and here's why you won't have this problem with that something else." That being said, the boolean modifier seems to have done the same exact thing.

