I was on a speed awareness course earlier this year and raised the question of over reading speedometers. Apparently they must never under read and the reading depends on the diameter of the wheel and that in turn depends on tyre wear at the extremes there can be quite a variation.
Speeds on sat navs are better but they dont take gradients into account so are not accurate.
For the sake of a couple of MPH stick to the limit as shown on your speedo and you wont break the law. Take a gamble any other way and you should take the consequences if it backfires.
There were people on my course whose ticket said 31 in a 30 !!
As part of the type approval process I recently had the speedo on my kit car tested, it was interesting to watch. The car was on rollers and the chap took the car up through the gears (pretty clumsily it has to be said, I was annoyed that I wasn't allowed to do it) at set intervals of 30, 40, 50, 60, 70mph and took a reading of "actual" speed from the rollers, and checked what the speedo was reading. Previous to this I had to program the speedo with a number of pulses per mile. I rolled the car down the driveway 8 full wheel revs and measured the distance covered, to account for rolling diameter from tyres being squashed by the weight of the car, as you mentioned. Then account for diff ratio (3.54:1) and number of sensor points on prop shaft (3) gave me a magic number which amazingly was pretty close. I got 30/29 (bit too close tbh but still acceptable), 40/37, 50/45, 60/56, 70/66.
That was at my second test, the first test the week before I failed on a couple of things, one of them being the speedo broke while I was driving there and would only read 50 so I just did whatever the cars in front were doing until my copilot got the sat nav on my phone working. Most people were presumably sticking to the speed limits as everyone was 4 or 5 mph under.