I have looked into what happens if we round the theoretical values to (in the early part of the of the table) to 0.1 (and in the later part, 1) but have the "slice point" (above which we choose the next higher value) a value other than the conventional 0.5 (normalized). (This is an admittedly-artificial exercise.)
If we make that value 0.65, then most of the theoretical values thus rounded match the Canon list. but later on (for the Canon f-numbers 29, 81, and 91, this maneuver fails. (The theoretical values for those are only a little bit over halfway to the next integer value.) For these, the Canon value is the theoretical value rounded in the usual way (which most if the Canon values are).
It seems likely that the Canon list was generally based on rounding ("to nearest") the theoretical values, but with a few departures (where the Canon value is that obtained by "rounding down" the theoretical value). These may have been chosen for various reasons (including "historical continuity" at Canon).
Best regards,
Doug