To be most accurate, you should probably use a cycle computer with a rear wheel sensor. The front wheel travels further, on account of wobbles and taking the outside line on bends, as can seen from the wheel tracks (when visible).
GPS is accurate, in that you are generally within a couple of metres of where it says you are, and the distance between point A and point B is correct to within 3 or 4 metres.
GPS takes points one second apart and gets route distances by adding up all the straight line distances. The 1-second points don't normally all make it into the track log, as the default Garmin setting is to economise on saved points (in addition, I would expect that upload sites like Strava would also filter out unnecessary points). This will mean that distances taken from saved tracks won't necessarily give the same distance that was on the screen of the Garmin at the end of the ride, which came from the 1-second points. In general, fewer points means more under-reporting of distance.
In addition, the 1-second points get smoothed. Going along a straight road at cycling speed, the points make a nice straight line, but if you go along the same bit of road at walking pace, the smoothing doesn't work so well, and the unsmoothed random errors in individual point positions give enough of a zig-zag to add significant distance if you use all points. You can also get additional distance at cycling speed, when the initial point of a turn gets smoothed and the track continues straight on for a couple of seconds before making a sharper turn.
Between under recording for straight line segments, over recording due to smoothing overshoots or unsmoothed position errors, and under recording because the GPS is on the handlebars and doesn't travel so far when the bike is banked over on a bend, it's not really possible to be definitive on how accurate a GPS route distance is.
(I loaded a number of tracks on to the OS MasterMap computer mapping at work, in preparation for filling in the large blank areas on OpenStreetMap, so I did get to compare GPS positions with real positions down to about 50 cm).