We must try to seperate the things which need to be loaded on the fly, and things which should allow the viewer to be taken to a seperate page. I'm going to restrict myself to the blog environment, since I'm most familiar with use of asychronocity in blogs. In blogs, things which should be loaded asynchronously are the things which are secondary to the primary data. For example, related posts. It'd be perfectly logical to load a post which is related the one a viewer is currently reading, so that he can read it in context, rather than load it in a seperate page and take it out of context. This is a tremendoes usability upgrade, since all the information is available to the viewer without the need to switch pages. The same logic is followed in Heads Up Displays (HUD). This does increase productivity, since it takes away a lot of clicks and keypresses.
That is just one big example that it definitely should be used for. Other uses can be like my Search Results and Categories Display. Anything which follows the 'secondary to back primary' rule, can/should be made dynamic.
Contrarily, things which are primary, should never be given dynamicity. Especially, things which are from external web sites (sites not belonging to you), because besides this being an inconveniences, it takes away hits from their site, which is an unethical thing to do. Things like individual blog posts (out of context), being loaded on the same page (async) should be avoided. Rampant use of AJ also becomes heavy on the browser. Firefox will most definitely crash after a while, others might hold up a bit longer. Hence, avoid it where you can do without it.
Everything when overdone, kills its purpose and becomes more of a liability. AJAX and AJAJ can load almost any bit of data into a page without refreshing it. Security issues aside, you can have pages which can virtually load the internet on one page, and you won't need to manually go to any other page. Such a page would probably be a YubNub type web application, otherwise it wouldn't make sense. That would be like having a web browser inside a web browser! Is that ultimately what we're trying to achieve? I don't think so!
Understand the need of the situation, before implementing whatever's doing the buzz! Not every technology can be used, but you should have a good idea of it. So, the next time you think of going async on anything, stop and think if you really need it. You'll be doing your page and yourself a favour! Trust me! :)