Currently the IntersectWith method uses the BoundingBox when working with blocks and you have to manually provide a workaround if you want to check for intersections with subents. I propose to change the signature to allow the choice of checking sub entities.
Current signature:
IntersectWith(IntersectObject As Object, option As AcExtendOption)
Proposed signature:
IntersectWith(IntersectObject As Object, option As AcExtendOption, Mode As AcIntersectMode)
AcIntersectMode constants:
acIntersectWithParentObject = checks for intersection with bounding box if Object is a complex object, i.e. block or xref
acIntersectWithObjectSubEntities = checks for intersection with Object's children entities if Object is a complex object, i.e. block or xref