VBSでの日付の加算について、どのような仕様になっているのか知っている方がいたら教えてください。

' (1)
x = #10:10:10#
MsgBox CStr(x + x) ' 20:20:20

' (2)
x = #1899-12-29 00:00:01#
y = #1899-12-30 00:00:01# ' #00:00:01#と同じ
MsgBox CStr(x + y) ' 1899/12/29
MsgBox CStr(y + x) ' 同上

' (3)
x = #1899-12-29 00:00:01#
MsgBox CStr(x + x) ' 1899/12/28 0:00:02

' (4)
x = #1899-12-29 00:00:01#
y = #1899-12-31 00:00:01#
MsgBox CStr(x + y) ' 0:00:00

(1)はいいでしょう。x + (y - 基準日)で求まります。

(2)は、加算する一方のみが基準日である1899/12/30 00:00:00よりも前の場合に計算方法が切り替わることを表しています。 基準日を「またぐ」場合とみなせ、x < 基準日 && 基準日 <= yの場合はx - (y - 基準日)y < 基準日 && 基準日 <= xの場合はy - (x - 基準日)となっているようです。

(3)は、加算する両方が基準日よりも前の場合にも、やはり計算方法が切り替わることを表しています。 (1)と同じ計算方法になっているようです。

(4)は、基準日より前の時間の流れ方と、基準日より後の時間の流れ方が異なっていることを表しています。基準日からどれくらい離れているかの量が、x(-23:59:59)とy(+24:00:01)とで違うにもかかわらず、結果が0:00:00になっています。 この結果と、(2)を整合させるための条件が分かりません(予想では30日というのが特別扱いされている・・・?未検証)。

この他にも、上で挙げた条件以外の条件が絡んできそうで悩んでいます。 「ここに仕様があるよ」という意見と、「こういう条件があるよ」というのを知っている方は教えてください。 お願いします。

追記: 既存の加算を使ったコードを挙動を変更することなく移植する必要があるため、DateAddを使えばいい、という話ではありません。