Вот примерно в таком случае метод покажет, что нормаль направлена наружу:
![Изображение](http://bbs.vbstreets.ru/download/file.php?mode=download&id=7814)
Сначала алгоритм посчитает конец одного отрезка, потом - начало другого. Всего получится 2 пересечения. Если при определении пересечения нормалью отрезка не учитывать крайние точки этого отрезка (то есть в проверке, описанной Зенитчиком, поставить строгие неравенства), то пересечений будет 0. Можно ещё придумать учитывать начало отрезка, но не учитывать конец, но в другом контрпримере алгоритм опять будет работать неверно:
![Изображение](http://bbs.vbstreets.ru/download/file.php?mode=download&id=7813)
Я там ещё чего-то придумал, сейчас уже не получается вспомнить, но всё-равно через некоторое время придумал и этому контрпример.
Кажется, что на практике такие случаи маловероятны (особенно когда все координаты double и т.д.), но опыт показывает, что не так уж и маловероятны. Особенно, когда рисует программа (вертикальные, горизонтальные и т.д. линии). Хотя в данном случае рисует человек, поэтому, в принципе, способ приемлем.