SyncML isn't a panacea - it has odd rules ("client always wins" for example) that can mean you lose the latest updates, and there are many quite buggy implementations. https://lwn.net/Articles/327498/ has some background. I use http://Memotoo.com which is quite a good hosted contacts service using SyncML, but keeping all the various connectors working is not easy.
For reliable syncing of PIM data, many companies end up licensing Microsoft's ActiveSync, and Google Sync uses this for most mobile platforms: http://www.google.com/mobile/sync/