Sorry for the spam, but I am digging to see how deep the rabbit hole goes. All five of the first branches in org-matcher-time are wrong (again, local timezone dependent):
(org-time= "<2017-11-01>" "<today>") nil (org-time= "<2017-10-31>" "<yesterday>") nil (org-time= "<2017-11-02>" "<tomorrow>") nil (org-time= "<2017-11-02>" "<+1d>") nil For my immediate bug, all that is needed is a small fix to org-time-today and modifying the call to float-time in org-matcher-time. However, there are a lot of float-time calls in Org mode, and I don't know how many of them need to be modified to return org-2ft time shifted timestamps instead of UTC Unix timestamps.
