Sooo...God's just too smart for us? How does his being super duper smart negate his ignoring his own moral code?
Yes. You are not smart enough to figure out the baseline used for moral code.
To humans we base our moral code on physical bodies. It is thus immoral to have someone harmed or killed physically.
God bases His moral code on souls. So it's immoral not to maximize the souls saved. So if the Canaanites are not killed, His gospel won't reach today's humans to save their souls. He simply removed what are dead (Canaanites are dead using soul as the baseline for measurement) to facilitate the saving of human souls.