roInt implements 3 interfaces: ifInt, ifIntOps, ifToStr. The bizarre thing is that both ifIntOps and ifToStr manifest only one and the same method: toStr()! And it's not that the documentation is wrong here, since i can check both are there:
The ifToStr interface was just added in 7.0 (and a welcome addition, indeed!). I imagine both interfaces use the same function on roInts, in which case there wouldn't be any double work, just backwards/legacy compatibility.