I'm aware of шёл's derivation from Proto-Slavic
*xьdlъ, related to ходить, but that form still seems irregular — given that вёл, which has the exact same relation to водить, had
e rather than
ь in the root, as demonstrated by the lack of elision in the feminine, neuter, and plural.
My guess is that шёл, шла, etc. were in fact a contamination of
*хedl- and the lost regular past participle form of идти, which I expect to be
*jьdl-. Am I correct? And, out of curiosity, what would the hypothetical regular (in Proto-Slavic terms) past tense of идти have been in modern Russian? Probably *ёл, but what of the other forms? *Ила, *ило or maybe even *ла, *ло?