I remember a similar issue with a friend of mine which writes in an online newspaper. They used that method, put a canonical on each article they wrote. I don't know if this may be useful, because anyone can link to anything to establish the original one, however he told me that this technique worked fine for them, making google crawling their site faster and more frequently.
I never understood the relatively common doubt about this. Maybe because people are thinking that the canonical link "is" a 301 redirect - it's not, but Google often treats it that way when a non-canonical URL is requested.
If someone reaches a URL that is also considered the canonical address for that bit of content, then presence of a canonical link element is a simple confirmation. If the URL was varied in some way (and on most servers there are many ways to vary a URL and still get the same content) then the canonical link is doing some heavier lifting.
I would say it's valuable to stress test your canonical link script before going live - just in case the configuration is doing something funny. Incorrect canonical link tags can generate extended problems.
That said, I also realize that Bing's webmaster communicator Duane Forrester said that Bing DOES consider it an error for a URL to contain a self-referring canonical link. However, Microsoft has been trying to rewrite standard web technology for many years, introducing their own vocabulary terms, teaching soft-404s in their manuals, etc. etc. In earlier versions of the IIS server it was very hard to figure out 301 versus 302 redirects - because the GUI didn't explain it.
I use canonical tags on every page on my web site. I've had issues with a staging server getting crawled and indexed before. I've had issues with index.html vs /. I've had issues with added query strings. The canonical tag on every page prevents these from being an SEO problem. I'd recommend the practice.
The only reason that it would be a bad idea is if you mess the canonical tags up. They are problematic to QA because they are not in any way visible to users. I canonical tag on every page is a good idea unless the tags are messed up like the following examples.
* Every page canonicalized to the home page rather than to the canonical version of itself * Canonical tags that point to 404 pages * Misspellings in canonical tags
I messed mine up when I first implemented them by canonicalizing all the non-English content to the English site. I fixed it with a day and it didn't end up hurting traffic.
I've heard horror stories of website with mis-applied canonical tags that don't find the problem for a month and lose lots of traffic.
Its a good idea to put them on your site, unless you mess them up. Get a second and third set of eyes on them in the source code both on a staging server and post-launch.