Speedometers aren't accurately calibrated, plus or minus 5 is pretty common and +-5mph at 50mph (10% as mentioned) is what I think the current law is in the US. They aren't set high or low on purpose and I didn't see any reference to high or low in the rules.
On older cars with an analog needle, even an electronically controlled needle, the speedometer and odometer don't always agree. The analog needle often points to a different value from what the ECU is reading due to the gauge aging or just starting out poorly. If the vehicle is new enough to have OBD2 you can check the speed with that.
Many trucks like Ram/Dodge have tire size adjustments in the ECU that can be changed with the factory scan tool. It makes sense, many full size trucks have different diameter tire options from the factory.
As far as I know there are no vehicles that use GPS to calibrate the speedometer. You don't want vehicle speedometers going crazy when you drive in low traction situations like snow and dirt and then transitioning back days later under normal conditions. Chrysler navigation radios at some point did calibrate their internal speed with GPS and use dead reckoning when the GPS signal is lost like when driving through a tunnel but that information was not relayed back to the ECU. It's possible some vehicles do this, I've just never seen it done.