iCloud is merely a brand encompassing all of Apple’s web services and has no connection to the underlying technology.
The “iCloud” APIs given to developers are specifically designed for data storage and sync, whether that be via key-value storage, Core Data, or a file-based method. Apple has never advertised them as anything more … because they don’t do anything more.
Mail, Photo Stream, iCloud backup, iTunes and the like are not mere datastores. They can’t use the developer APIs in the same way Facebook couldn’t build a social network on top of them either.
The developer APIs aren’t meant for hosting web services. Web services necessitate daemons, shared databases, external compute power and the like — they have to do stuff far beyond syncing data.
Hence, the fact that Apple uses a separate technology stack than that it gives to developers is not a matter of right or wrong, just practicalities. The public iCloud APIs are (trying to) simplify data sync for developers and that’s it. If you need to do more than that with a remote server (as Apple does), you have to go elsewhere.