Canonical URLs are only hints (albeit strong ones) about which of two pages with duplicate content get indexed. Google has always reserved the right not to follow them when it sees that content is sufficiently different; it will crawl your canonical page and make its own decision. The likelihood being that if the page is different, it'll assume you made an error and crawl the page anyway. If its the same, it'll index your preferred URL.
They are for hinting which URL you prefer to see in the index when you can access the same page of content in multiple ways. Just for anyone that doesn't think that's likely - consider a fairly standard server set up, it would be possible to access the same page with a number of different URLs:
- mysite.com
- mysite.com/index.php
- mysite.com/index.php?sort=name
- mysite.com/name (using mod_rewrite)
You can double the ways to access the page if you add a subdomain (www.) onto the beginning of the URL too!
So, if you have "Page A" with a canonical URL pointing to "Page B" - given that they are different, the best and probably most likely case is that the canonical tag will be ignored. The worst case is that you'll be removed from the index for trying to manipulate search results in a dishonest way.
So short answer - no. At best, pointless. At worst, harmful to your site.
Here's a 20 minute video by Matt Cutts on it, in case you're having trouble sleeping ;)
http://www.youtube.com/watch?v=Cm9onOGTgeM