It's more like:
3) That the scale returned by getScale does not seem to be accurate with what's physically displayed on the screen.
For example:
-We know that the length of a bridge is 1km in the "real world"
-The bridge is displayed in ArcGIS and getMapScale() gives us a scale of 1:10000
Knowing that, the length of the bridge displayed on the computer screen should be 1km/10000=0.0001km=10cm
But it's not the case, we get something closer to 13 or 14 cm.
Of course, GeometryEngine.distanceGeodetic() will always return the right distance, but the use case here is to display the current scale ratio accurately, like on "standard paper" map.