In my experience thus far, bpy.ops.mesh.intersect_boolean just kinda sucks. But boolean modifiers work really well, especially with the manifold mode (though you might not want to commit to supporting only manifold meshes).
Here's an example of where intersect_boolean (with 'exact' and 'self' off) fails critically but the boolean modifier ('exact') works perfectly:

In my experience thus far,
bpy.ops.mesh.intersect_booleanjust kinda sucks. But boolean modifiers work really well, especially with the manifold mode (though you might not want to commit to supporting only manifold meshes).Here's an example of where
intersect_boolean(with 'exact' and 'self' off) fails critically but the boolean modifier ('exact') works perfectly: