Vou dar minha leiga opinião sobre o assunto.
Sempre acho interessante pontuar que data e hora são duas unidades distintas e com propósitos diferentes, mas que uma é ligada à outra. O conceito de "momento" é muito menosprezado por muitos programadores, deixando que o usuário advinhe a data a partir do que acontece no sistema.
Algo bacana que vejo alguns sistemas fazerem é armazenar a data e hora sempre relativa ao do servidor, e ao exibir no cliente é transformado na localidade do mesmo. É interessante ter uma API ou biblioteca dedicada à isso, pois é impossível advinhar quando um computador tá no horário de verão ou não somente com códigos.
Recentemente, o governo brasileiro aboliu o horário de verão. Não sei como vai ser esse ano. Não tem como prever, vai de uma circustância que está além de cálculos, física e etc.
Gostei do seu ponto que "não existe uma aritmética universal de datas", porque realmente não existe. Não existe uma unidade primitiva para tempo. Existe o conceito numérico para segundos, milisegundos, minutos, horas, etc, e você pode somar eles, mas o resultado sempre será uma representação de duranção ou ponto no tempo.
Dependendo da finalidade, você ajusta a precisão, descendo do milissegundo, microsegundo, nanosegundo, picosegundo, etc... vai da finalidade.