Christ uses visuals or parables to describe settings that would be familiar to this audience.  He was not directly calling Canaanites dogs, merely pointing out that they were not the sheep in question.  Jews aren't sheep either and in some modern connotations being a sheep isn't a good thing either.  

The first shall be last and the last shall be first - and all that infers.  His mission during his mortal ministry was to the Jews and not to others.  However he has compassion on the woman as she takes his analogy and shows herself to be faithful.

After Christ's resurrection his disciples were sent out to the world and not before.

EDIT:
This is also a duplicate of [this question][1]


  [1]: https://christianity.stackexchange.com/questions/2837/why-did-jesus-refer-to-gentiles-as-dogs?rq=1