As explained in
http://www.w3.org/TR/xquery-operators/#func-subtract-dates
the implicit timezone should be used for augmenting an xs:date without a timezone before subtracting it from one with a timezone.
BaseX however appears to be using timezone Z in this case.
The following xquery demonstrates this:
current-date() - xs:date(substring(string(current-date()), 1, 10))
It should return a zero duration, but BaseX returns
-PT2H
I am in timezone +02:00.
Best regards Gunther