I just want to clarify something - notify-osd is just one implementation of the Freedesktop Notification spec. Applications actually use libnotify, which allows them to integrate with the notification system (which could be notify-osd, the legacy notification-daemon or any other implementation of the spec)
Both Thunderbird and Firefox already have native support for libnotify. However, they fall back to XUL notifications when communicating with a notification system which doesn't support actions (ie, notify-osd). This is because the types of notifications provided by Firefox and Thunderbird show information that is only really useful if the actual notification allows the user to interact with it (eg, "download finished" should provide a way for the user to access the downloaded file. A "new mail" notification should provide a way to access the new mail, and be persistent).
Making Thunderbird and Firefox use libnotify when the notification system doesn't support actions would provide a very sub-optimal experience if we made no other UI changes.
There is already ongoing work to integrate Thunderbird in to the messaging menu. Part of this will involve having new-mail alerts via notify-osd. Persistence will be provided by the messaging menu.
In addition to this, I will at some point start work on integrating download notifications in Firefox with notify-osd and the Unity launcher (with the launcher being able to show a progressbar, and use quicklists as a way to access finished downloads). This work hasn't started yet and will be something I do for the 11.10 cycle.