It's a good question, but even as a native I have found no definitive answers. Perhaps the only answer is the way Indians have traditionally perceived time. Time is a continuum that keeps going in infinite cycles, the "ahorātri" of Brahma. Yesterday determines today and tomorrow and tomorrow will define a future "yesterday" in the cycle. The word therefore remains the same, but the associated verb tense changes. Other related languages like Bengali do make a formal distinction, though. Yesterday is "gatakāl" (past kal) and tomorrow is āgāmikāl" (future kal), but even Bengali does not distinguish this in informal speech and usage.