- notifications in dialogs, like the ones in gaim, are disturbing, and sometimes makes user lose them (if you are typing and looking at the keyboard, and press SPACE/ENTER/whatever)
- notifications in panel (either notification area or a bubble on an icon) are, at least from my experience, always missed. I used to have the alarm daemon in Evolution set up to use the tray icon instead of dialogs, and after a few days missing *all* my appointments, I switched back to disruptive dialogs, which at least are more difficult to lose (unless you are typing)
- libnotify implementation makes it difficult to not see the notification, but doesn’t interrupt your current task
So, my conclusion is that libnotify is the best way I’ve seen so far for notifications. Of course, as with the trash applet thingy, we need to make sure we don’t abuse them, and only use them for real notifications, not for every status change.
The GUI in the notification-daemon might need some tweaks, specially if we want it to look like all those mockups we saw some time ago, but that’s all I can think of against libnotify.