Эту задачу с прямоугольниками можно
свести к двум простым задачам попадания отрезка в диапазон значений:
сначала по оси X,
потом, если по X проверка положительна,
этот же алгоритм проверки применить к оси Y.
См.рис. -код VBA:

Ответ на вопросы:
Всего в программе четыре сравнения в функции intersect(),
но функция может быть вызвана два раза.
Программа выполняет МИНИМУМ 1 сравнение
чтобы выдать отрицательное заключение.
Программа выполняет МАКСИМУМ 8 сравнений
чтобы выдать положительное/отрицательное заключение.
---Параметры для проверки:--
Примерно соответствует ЛвВерх- рисунку
blue.ptLN.x = -1.5: blue.ptLN.y = -1.9
blue.ptRU.x = 11.3: blue.ptRU.y = 19.1
red.ptLN.x = 3.4: red.ptLN.y = 2.7
red.ptRU.x = 12.6: red.ptRU.y = 20.2
Примерно соответствует ЛвНиз- рисунку
blue.ptLN.x = -1.5: blue.ptLN.y = -1.9
blue.ptRU.x = 11.3: blue.ptRU.y = 19.1
red.ptLN.x = 5.4: red.ptLN.y = -4.7
red.ptRU.x = 9.6: red.ptRU.y = 21.2
Примерно соответствует ПрВерх- рисунку
blue.ptLN.x = -1.5: blue.ptLN.y = -1.9
blue.ptRU.x = 11.3: blue.ptRU.y = 19.1
red.ptLN.x = 5.4: red.ptLN.y = 0.7
red.ptRU.x = 9.6: red.ptRU.y = 15.2
Примерно соответствует ПрНиз- рисунку
blue.ptLN.x = -1.5: blue.ptLN.y = -1.9
blue.ptRU.x = 11.3: blue.ptRU.y = 19.1
red.ptLN.x = 11.5: red.ptLN.y = 15.7
red.ptRU.x = 14.6: red.ptRU.y = 23.2
В функции intersect() нужно проверять еще один вариант расположения отрезков.
Изменено условие при принятии решения.
На рисунке изменения, красной рамкой: