Полазил, посмотрел точнее:
во время отладки, встроенная смотрелка таблиц для второй записи (на кооторой и происходит затык) показывает, что таблица содержит разные значения - 152.00 против 45.00, когда же я прошу вывести значения самих этих полей - выводит все правильно - 152.00 и 152.00.
Помогло применение _v_DocDetails.AcceptChanges() - но это же не дело, вполне может оказаться, что я не собираюсь менять статус всех (или каких бы то ни было) записей.
Другой способ - ручками в отладке вышел из цикла (когда тот зациклился на невозможности отфильтровать вторую запись из исходных 4-х). Затем в гриде потыкался в ячеки проблемной записи, но не меняя никаких значений (событие CellAfterUpdate не вызывалось). После чего снова вызвал проблемный метод, приведенный в листинге - во вьюху на этот раз попало только 2 записи, т.е. проблемная запись уже отфильтровалась и обработка оставшихся записей прошла без проблем.
Если же я вызывал этот метод не заходя в грид, то во вьхе было 3 записи и зацикливание на проблемной.
на всякий случай привожу значения строк:
1 - 12.00 - 135.00
2 - 45.00 - 152.00 - (проблемная)
3 - 0.00 - 200.00
4 - 5.00 - 123.00