Вот примерно в таком случае метод покажет, что нормаль направлена наружу:

Сначала алгоритм посчитает конец одного отрезка, потом - начало другого. Всего получится 2 пересечения. Если при определении пересечения нормалью отрезка не учитывать крайние точки этого отрезка (то есть в проверке, описанной Зенитчиком, поставить строгие неравенства), то пересечений будет 0. Можно ещё придумать учитывать начало отрезка, но не учитывать конец, но в другом контрпримере алгоритм опять будет работать неверно:

Я там ещё чего-то придумал, сейчас уже не получается вспомнить, но всё-равно через некоторое время придумал и этому контрпример.
Кажется, что на практике такие случаи маловероятны (особенно когда все координаты double и т.д.), но опыт показывает, что не так уж и маловероятны. Особенно, когда рисует программа (вертикальные, горизонтальные и т.д. линии). Хотя в данном случае рисует человек, поэтому, в принципе, способ приемлем.