In addition to this discussion:
I would like to know if the new mathutils.bvhtree module may help to detect intersections of two meshes.
Blender Stack Exchange is a question and answer site for people who use Blender to create 3D graphics, animations, or games. It only takes a minute to sign up.Sign up to join this community
yes, overlap in mathutils.bvhtree does show pairs of polygons that are intersecting if any.
You will have to create 2 bvh trees, for each mesh, using one of the methods given in the api (from Object, from Bmesh, from Polygons), then use those as
pairs = bvhA.overlap(bvhB)
So a basic check would just see if that list is
 or something. Or may further use the pairs of poly to do something.
Note that there are some limitations