GfPreferenceEngine is an object that abstracts preferences. When people first see that, they think I'm crazy. GfPreferenceEngine's existance is to allow all preferences to be handled by guifications-daemon. I know what you're thinking, that this is stupid and what not. So if I know you're saying this, why did I do it? It's quite simple actually. The easiest way to explain it is to think of how Instant Message servers have server side buddy lists. So say for example you're jumping between GNOME and KDE, and using a different "display" client. Since the preferences are handled by guifications-daemon you don't have anything to sync.
Also, once the API becomes stabilized, we will be introducing NotificationPool's where multiple daemons will be able to dispatch notifications to each other. Preferences, will of course, be automatically synced across the NotificationPool as well. Say for example you're at home and decide you don't want to be notified when someone messages you in Gaim. If the daemons didn't sync, you would then have to update this between home, work, and where ever else you use Guifications. With the daemon handling the preferences, and syncing them between the other daemons, manual synchronization is not required.
