considering the cateye uses a 4-bit (2^4 =16) microcontroller I'm surprised it's even that accurate.
So in theory over a mile you can only resolve 330ft increments (5280/16) , which is +/- 6.25% error. This also assumes there is no errors associated with the rims and tires.
The Garmin claims an accuracy of +/- 1%