Разобрался.
1. Все точки должны быть видимы на экране.
Не обязательно, все работает даже если точки не видны, какие то варианты функций работают только при видимости на экране, какие то нет.
допустим Select с опцией acSelectionSetAll работает в любом случае (можно фильтры применять) , а вот с другими опциями только в области видимости...
SelectByPolygon - с опцией acSelectionSetWindowPolygon и acSelectionSetFence - также работает без видимости на экране, проверено многократно, про другие утверждать не будут, не пользовался, но думаю, что также будет работать, а вот SelectAtPoint - работает только при видимости на экране.
2. Если полигон будет самопересекающимся, то выбор работать не будет.
в случае опции acSelectionSetFence - будет работать даже если линия будет самопересекаться (проверено многократно), а вот в случае acSelectionSetWindowPolygon - уже не будет.
В общем проблема была в том, что две подряд идущие точки лежали друг на друге, по сути, длина сегмента равнялась 0. Когда добавил проверку на совпадающие последовательные точки, и если в случае совпадения этих точек одну из них исключить, то все начинает работать.