That's just not completely correct. The zipcodes that you packaged with the software have the negative values removed. So long as the negative values of the Canadian codes are removed, it works just fine. The problem occurs when one set uses the negative values and the other doesn't.
I just spent some time working with a few of the zipcodes. I changed them to negative and then did some distance calculations. They returned the exact same results as they did when the negatives were removed.
I also tried it on one of the instances where the wrong distance is being calculated. I changed those two codes to the proper negative values and the exact incorrect distance was returned.
So what I've verified is that the calculations are exactly the same so long as both the US and Canadian codes both use the negatives or both have the negatives removed.
I do agree that to be technically correct, the negatives should be there but it makes no difference so long as both are the same.