Because Japanese does not have both "shi" and "si", and does not have both "tchi" and "ti", the latter are available as a notation to represent the former, and have been so used.

There is no need to encode rules like s* + i -> shi, because that is taken care of by the existing understanding that si encodes shi.

The romaji notation is not phoentically accurate to begin with (and neither are the Japanese writing systems); like it doesn't capture nasalization of G followed by N and what not. The "n" in "na" and oni" is different, yet we don't write ñi or whatever to indicate the palatization. The Hepburn romanization is just based on what is or is not convenient relative to English.