the shape_.id_ is not predictably correct (if you test against ogr.input) and not always globally unique if parsed at feature creation time. But it is correct by the time the dbf attribute parsing starts. I saw this by chance, and fixed it by setting twice (#1019). We should investigate more fully and try to avoid having to set it after the feature is created.
shape.input: remove set_id() method as it's no longer required ref #1020