Looking over some different blog posts about the wonders of the KML format, I am left scratching my head as to what is so great about it. Certainly, it is nice to have a way to specify certain geospatial features, camera values, overlays, etc.. along with network links to other information in the same file in XML format. But each of these features are pretty obvious in themselves.
It's always the user interface that is the make or break issue of any software application. KML is pretty good at specifying what you are going to see and from where you will be looking. However, there is a disconnect in how this information is used by the underlying graphics engine and how those files and their contents can be managed and manipulated by the interface. The My Places/Temporary Places link area is very klunky and limited in my opinion.
As a format, GML is more precise and complete and would be a better basis for a feature format. One is a very nice number, having all of the information you need in a single file is very compelling from a standpoint of simplicity. The network link allows data from various sources to be cobbled together, very powerful, just like HTML. Could this be improved upon?
The idea I have for EarthBrowser is of a self contained data package that contains different elements such as features, camera settings, overlays, image files of various formats, shapefiles, engine scripts in separate files (or together if it makes sense) all packaged together in a zip file (or my favorite a bzip2'ed tar file). This reduces the number of network connections needed, consolidates the data so you won't have a situation where a critical part of the data is missing due to a download failure and eliminates the program states where only partial data is available. The engine script can use the a pre-existing user interface system to decide how it will display itself in the interface. For very large data packages, it becomes feasable to share them as a .torrent file amongst other EarthBrowser users, reducing the server load for popular packages and improving availability for end-users. One negative is that since you need the whole package, there is no way to display information as it arrives like a web page. However for 3D environments it may not make much sense, or be possible, to display partial information like HTML.