A resposta é porque "ser" e "ir", entre outros verbos, são verbos polirrizos, é dizer, verbos com várias raízes, o "be" em inglês também é, e em todas as línguas indoeuropéias podemos encontrar o fenômeno, e tudo foi resultado da mistura no latim vulgar.
Ser, vem do verbo latim esse que originalmente significa existir, mas que eventualmente, no latim mesmo, foi mudando o significado, lembrando que as línguas indoeuropeias podem ser rastreadas muito antes de existir o império romano e so existem um par de línguas não indoeuropeias na Europa, por exemplo, o euskera.
Esse do latim, tem sua origem no verbo indoeuropeio es- ou simplesmente s-, conjudado seria:
Indoeuropeio |
Grego |
Latim |
Português |
es-mi |
eimi |
sum |
sou |
es-se |
essi |
es |
és |
es-ti |
esti |
est |
é |
es-mes |
eimen |
sumus |
somos |
es-thé |
este |
estis |
sois |
es-nti |
eisi |
sunt |
são |
Analogamente "ir" tem sua raiz no "eo-" indoeuropeio.
Agora o interessante e onde cruza-se tudo, no latim existe (ou existia) o verbo fieri, que tem sua raiz no fu- ou bhu- indoeuropeio. Alguma semelhança do bhu- com o be ou been inglês? ;). fieri vem a significar "chegar a ser", por isso os conjuntivos em futuro de ser e ir têm sua origem em fu- e não nem em es- nem em eo-.
E finalmente no caso do ir, ele competia com o verbo vadere em latim, que vem a significar marchar ou avançar, vadere ganhou do ire no latim vulgar, porque ir se prestava a cofunções, por causa dos sotaques por exemplo. Mais ou menos como acontece quando alguém prefere usar observar em lugar de ver, colocar em lugar de por, ou escutar em lugar de ouvir, entre algum dos muitos exemplos.
E assim aconteceu.