Credo sia un bug di VB6 dovuto agli arrotondamenti in floating-point, tra l'altro non lo fa sempre ma solo con certi valori (come quelli che hai indicato tu). Probabilmente è colpa del metodo DateAdd, che nel variant restituito lascia qualche bit "sporco" anche se non visibile convertendolo in Double. Come conferma di questa ipotesi, basta "pulire" la variabile Date dopo aver eseguito il calcolo:
codice:
Dim d1 As Date
Dim d2 As Date
Dim inc1 As Integer
Dim inc2 As Integer
d1 = #1:20:00 PM#
d2 = #1:40:00 PM#
inc1 = 80
inc2 = 60
'calcolo
d1 = DateAdd("n", inc1, d1)
d2 = DateAdd("n", inc2, d2)
'pulizia
d1 = TimeSerial(Hour(d1), Minute(d1), Second(d1))
d2 = TimeSerial(Hour(d2), Minute(d2), Second(d2))
Debug.Print d1 = d2 'restituisce True