It is commonly taught that the present perfect tense in English means "happened in the past but relevant in the present", but I think this is not quite right, as shown by your question. The present perfect indicates to the listener that you are thinking of the event in relation to a certain time interval, which begins somewhere in the past and extends to the present and possibly beyond. The event happened somewhere in this time interval, possibly even just now, as in "Jones has won the race!" (spoken as Jones crosses the finish line). Exactly what time interval is understood depends heavily on context. For more information, see this answer.
The reason we don't say "The dog has eaten my homework" is because that would suggest that it still might be possible to do something about it. We say "The dog ate my homework" because that places the event clearly in the past, severed from the present, implying that it is over and nothing can be done about it.
"The dog has eaten my homework" suggests that something could still be done about it, because it leads the listener to view the event as part of a time interval or process that continues up to and possibly beyond the present moment. For another example of this, see the "Lost keys" section of this answer. The simple past does not evoke that time interval, so it's a clearer way to imply that the homework is irretrievably gone. If there were still several hours until the deadline, you might say to another student, "The dog has eaten my homework" to ask for help—perhaps there is still enough time to redo the homework or maybe even recover it from the dog (the sort of thing that might happen in a comedy).
Note that there is no rule here, beyond "the present perfect invites the listener to think of the event within a time interval that continues up to and possibly beyond the present". There is no rule that the present perfect implies that something could still be done to change the result, nor a rule that the simple past tense implies that nothing can be done to change the result. The implications of the time interval vary enormously from context to context, calling upon understanding of the topic, what's at stake, other conventional usage, etc.
You should know that linguists and schoolteachers commonly hold to the theory that the present perfect means "happened in the past but relevant in the present". So, if you point out a time interval on an exam, you will likely be marked wrong. And you should know that linguists and schoolteachers are often wrong. But I could be wrong, too, of course. Much of English grammar is still not well understood scientifically, and no authority is completely reliable. I think you are taking the right course: learning from real usage, one sentence at a time, thinking about it, and sometimes asking what other people think. That is how everyone has learned how to really speak any language.