If Cantonese is as different from Mandarin as French is from Italian (though, IIRC, both are Latin languages), then why are they still called dialects?
I see from the rest of the comments that dialect vs. language is political and arbitrary rather than an objective difference.