We already use GEOS:Simplify in sf.SimplifyLines()
It is using the Douglas–Peucker algorithm
If I understand it correctly it not only removes vertices but also changes the shape a little bit.
I think geos::geom::CoordinateSequence::removeRepeatedPoints() is not altering the result, just removing vertices that have no effect on the shape.
I'll verify on the GEOS mailinglist.