The system clock needs to be UTC, not UTC ± some offset stuck somewhere that keeps some form of running tally of the current leap second offset since the epoch.
Nope. UTC *includes* leap seconds already. It's UT1 that does not.
Are you suggesting that NTP timekeeping should be based on UT1?
The system clock should be based on UT1 and should be monotonically increasing since this matches the common concept of time. Calculations done with this value are all based on it being UT1 and using the "common" notion of UT1 rules. The root cause of the difficulties is that someone decided that the system clock would not maintain "wall clock" time (UT1) but rather some other timebase and then "step" that time to keep it in sync with UT1. NTP can keep time in UTC (or anything else) if it wants, but it should discipline the system clock to monotonically increasing UT1. --- () ascii ribbon campaign against html e-mail /\ www.asciiribbon.org