The speed is indicated by a rubber cup cone assembly. The faster it turns the further out the cup travels and that moves the indicator that translates to speed.

Miles travelled is strictly gear driven. X amount of turns equals x miles travelled. The odometer is correct but the mph is off is a common malady reported on the older BMW motorcycles and that is how it was explained to me. Calibration is performed by adjusting the position of the cup on the cone, that's why it doesn't improve when you replace the speedo cable, since the speedometer is still the same assembly.