Now, I should mention that both Judaism and Catholicism, while holding in common at least some of these texts, have developed mechanisms to, I won't say correct, but at least smooth away the roughness, should they taken at face value, of some of these passages. Of course, in protestantism there is no such self-correcting property, no need for further interpretation. Sola Scriptura is a defining principle, and so any attempts to soften the Bible's more mortifying passages is at best wrong-headed. What follows is a criticism specific only to those traditions that take and attempt to justify Biblical horrors.
It's a curious justification, most especially in light of the idea that moral law is absolute, eternal and unchanging (which moral law has to be, if we are not to end up at the despised endpoint of moral relativism). Now, the believer will try to wriggle out of this. They'll set timelines (which reduces Biblical moral law to a temporal state, and acknowledges that some of it has already passed away): "oh, that was for then...now we...". They'll invoke god powers (meaning that they are not absolute): God can change them if he wants. Often, though, issues with consistency are just ignored. So you see arguments like these:
While in general massacres and genocides are bad, Biblical genocide happened because it was necessary, in that time, to eliminate threats in such-and-such fashion.
While it seems cruel to force a rape victim to wed her attacker, marrying a rape victim to her rapist was necessary, in that time, because she had lost her virginity, and in such a culture that prized virginity so highly, what other choice was there?*
Sure, selling your daughter to be someone's sex slave sounds bad, but what if the alternative was starvation? You can't know, and without knowing, we can't judge God's decisions!
No matter how bad the law or the story, the conversation ends up going something like Kenny's call into The Atheist Experience, where he argues that it was just for God to command the killings of enemy children because they would have grown up to do bad things, like killing children; and, anyway, it was a long time ago in a different culture, which more or less makes it right:
(Kenny cites a book found in the Orthodox Bible but not in western Christianity's Bibles, but I've had these same sort of arguments with people citing canonical texts...and, once upon a time, desperately searched for explanations that were something better than this)
If someone was killed, infant or otherwise, they probably deserved it; and, if they didn't, well, they kind of did, because cultural context, and we have no right to apply modern standards to back then. Which sounds a lot like cultural relativism to me, masquerading and sometimes mingling with objective morality, to produce a sort of illogical hybrid:
God was justified in destroying those various tribes because they were immoral, they killed babies, etc. So, really, they totally deserved it.
Even the babies?
Well, it's wrong to try to compare actions like killing babies in the past to readings from our moral compasses now, because that was then and there, not here and now. So those babies totally deserved it, and it was all cool, because, you know, different set of same, unchanging rules.
It really makes no sense. We are simultaneously judging God's actions according to the laws we have now (it was self defense, because they would have killed His people -- if they hadn't had their heads bashed open as infants), and saying it's wrong to do that (well, sure, nowadays we might come up with solutions that didn't involve babies heads and rocks, but that was back then, and God was dealing with the cultural framework of the time and...). It's simply embracing whatever argument, or piece of an argument, you think might win your case; and swapping it for something else the instant it's inconvenient. It's cherry-picking -- but instead of verses, logic. It becomes objectively right when we judge the morality of the massacred people against the supposed objective morality of the Bible (which coincides very nicely with our own ideas of morality, nowadays), but apply relative standards of morality to the actions of the Israelites. In other words, "our side" can claim a special exemption from today's moral standards, but the other side can't.
But, really, if it was right for the Israelites to kill babies because different time/different culture, why wouldn't it be right for Kenny's baby sacrificing Canaanites? If baby killing is okay in the same period for one culture, who are we to judge it in another culture? It's a logically inconsistent position to argue anything else.
And if your reaction is to sputter, "That's absurd -- of course we can judge whether or not killing children is immoral!" Well, exactly. You can't have it both ways, though. Either there is, or at least was, no objective morality when God's people were wiping out various peoples (and their animals!), or there is; and if genocide and baby killing is wrong, objectively, then it was wrong to wipe out the Canaanite babies, just as it was wrong to kill Israelite babies.
Both the relative and objective moral arguments for divinely sanctioned infant slaughtering are bad. But when they're merged? They're just a sloppy, desperate hodgepodge of inconsistencies and contradictions.
*No, I'm not just deliberately crafting bad arguments to prove my point. Honest to Zeus, I've heard that one from multiple people -- presented as if it was a compelling bit. And "but the only reason they were obsessed with virginity was because of God's laws, so it's all a problem of his making" just nets more of the same. "Oh, but they had to limit promiscuity" ... "Well, where did that directive come from?!" You end up in a sort of infinite regress of "it wasn't God's fault -- look, over here, they had to do something else that God told them to do, because they had to do something that God said was necessary because..."