Very often I'll get erratic results with a Boolean operation on two objects with overlapping faces. The most usual result is missing faces in the combined object, or else internal faces are left after a Union, for example.
Why is this? Is there anything I can do to avoid it?