1. Someone has eaten / ate all the cakes
2. Children have visited / visited their Granny three days ago
has eaten
visited
В первом важен результат, а во втором есть явное указание на время.
1. Someone has eaten all the cakes
2. Children visited their Granny three days ago