I suggest that the fault in the law is the way it defines assault. It's an all-encompassing definition that allows for little context, but at the same time can inflict serious penalties. 

The first step? Take some forms of assault out of the Criminal Code. While society may strongly recommend against it, mildly spanking your own child as a form of correction should not be considered a criminal act.