The word homicida is attested in classical Latin, and the English "homicide" is an obvious loan. The word seems to come from homo and caedere. Why is the first part homi- instead of homini-? The stem of homo appears to be homin-, not hom-, and I'm not aware of any special role of ‑in-. Are there other similar examples that might help understand this by analogy?
Others more versed in historical linguistics may offer a more nuanced offer, but -cida, like a good many suffixes, are attached to the nominative and not formed from the root. The -i instead of -o is then due to weakening of an unaccented vowel. Cf. musculus, muscerdae, minusculus, or paterculus, all of which are formed from the nominative.
I'm not sure if this has been suggested (de Vaan is unhelpful), but I imagine forms like matricida were based on analogy with parricida, which despite its late meaning likely did not come from pater. de Vaan further notes (pp. 447-448):
The absence of syncope to *parkaida suggests parricida is a relatively recent compound. For a recent formation, par 'equal' is the most obvious candidate.
I don't know of an accepted answer to this question, but I will offer two alternative possibilities:
1) It's merely a case of phonetic simplification, i.e., an earlier *hominicida was replaced by homicida simply because the latter was easier to say. This is known as haplology.
2) If the PIE ancestor of L. homo goes back to something like *(dh)ghemon, then one can possibly imagine a combining form *homi- derived from a zero-grade *gh(e/o)mn̥, but since the regular reflex of PIE n̥ is en, this would work only assuming an irregular dropping of the n in this word, which makes it a lot less likely than possibility (1).