Responding to myself one more time here ;) In my ideal world, how this would work is we'd have a menu item or button in the preferences like "Add removable media source...". This would pop up a nice dialog with a graphical list of your currently attached media (and not mountpoints like /media/ipod). Adding the ipod could even work this way. You could then simply click on it, and Rhythmbox would add that icon to the Sources list, and let you edit the name (like how adding a new playlist works now). The above would probably be implemented by querying gnome-volume-manager's library, which in turn would use HAL and D-BUS. Now, on the Rhythmbox end, what would happen is a new RhythmDB type would be created for that source, and a reference to the media would be stored (perhaps the mount path, but maybe g-v-m could provide a more abstract reference so we could identify the device even if the mount point moves). Then, you'd just scan the files on that mount point similar to how rhythmdb_add_uri works - we'd just need add a type argument. One open question is whether you should see the files on the removable media in your library or not. Definitely you should be able to add it to playlists - so we'd need to add an argument to the playlist source to have it query for the new type. Now, on startup, we query for which of the removable media devices is available; if they're not, we use the new _delete_by_type function to remove them, and then grey-out the source. Also, g-v-m should provide a way to monitor for unplug/plug events, so we can re-query the device when it's plugged back in.
This is a digitally signed message part