Once nice thing is that PalmOS apps are infinitely easier to troubleshoot or reengineer. This is no doubt why things work so nicely in Linux (other than trying to get the USB tty interface working... serial I/O over USB? Wha?).
For example, I've been using the "Voice Dial" app that Samsung wrote to dial numbers using my headset. It's something you manually have to train, then it associates a record with an entry in your address book. Problem was, after my device sync'd all the voice dial associations were gone.
So I looked at the AddressDB file that the i500 had and noticed that each record had a unique ID associated with it. I took a guess that the Voice Dial app used that key to associate a voice dial entry with an AddressDB key. Looking at the actual .vcf file that was being sync'd from PalmOS onto my desktop I found there was indeed a field called
X-KPILOT-RecordID:that was storing the record's unique ID.
I added a lil' sed routine to my evolution-to-KDE export script that adds the field to the appropriate VCF contact records. Now that my contacts have the X-KPILOT-RecordID field the voice dial stuff stays in sync.