Currently, BTreeScan.isCurrentPositionDeleted() returns false if the current position has been purged (that is, if reposition(scan_position, false) returns false). Since a row must be deleted in order to be purged, I believe it is more correct if isCurrentPositionDeleted() returns true in this case.
(I'm not sure if it is possible to exercise this code path in the current code. It is not exercised by any of the existing regression tests. Its only caller, TableScanResultSet.getCurrentRow(), also calls doesCurrentPositionQualify() which correctly returns false in this case, and it therefore skips the row and hides this problem. So even if the code can be exercised, it shouldn't cause any observable problems at this time.)