It's a double-edged sword.
Right now they allow the technical decision. Like others have said, if Chael had accidentally injured Anderson with an eye poke in the 5th, apparently he would've won. That's not okay.
(That's just the first fight that comes to mind, so just think of a different one if the technical decision doesn't apply in 5 rounders.)
On the other hand, if situations like that always ended in a No Contest (or DQ if it was intentional, obviously), Anderson accidentally injuring Chael with an eye poke would rob Chael of what seemed like certain victory at that moment. That's even worse.
Either way you do it there will be potential for unfair situations, and for one guy or the other there is undeniably something to gain by committing a foul, even though it's unintentional. I don't think that any fighter who makes it to the UFC would be dirty enough to intentionally poke someone in the eye, but we can see that accidents happen, and it would be good to know that the person who fucked up wouldn't benefit from their mistake. Already they never take points for that stuff, so if it doesn't end the fight then they're getting the benefit of a slightly (sometimes significantly) impaired opponent.
The only way to remove any incentive to foul would be to treat it similarly to a failed drug test. If the injured fighter was winning on the cards, it goes on the record as a technical decision, and if they were losing then it's a No Contest. There's still potential for unfairness in that, so I'm not sure it's the answer.
In any case, I'd like to see a foul system implemented that deducts a percentage of the fighter's purse for stuff like that. It might not satisfy the fans to know that the only penalty would be behind the scenes, but if a fighter can lose 20% for missing weight, a poke in the eye or a kick to the groin should at least be worth 10%. And unlike that 20%, it should all go to the guy who just got his eye stabbed or his balls punted into his chest.