Вроде бы, смысл в том, что семантика "попытаться взять элемент.." позволяет писать условие WHILE с использованием этого элемента:

rd.ReadChar(c);
WHILE ~rd.eot & (c # 0DX) DO rd.ReadChar(c) END

Иначе операция чтения должна быть МЕЖДУ ~rd.eot и условием на символ. (В "массах" пишут for-break, конечно, им пофигу).

Т.е. смысл тут такой же, как у сокращённого вычисления логики - позволить сложные условия записывать.