The reasons we're using KML (which some consider a fork of an early version of GML) instead of GML (version 3) for "GeoWeb" applications have almost nothing to do with the actual merits of these formats. It all comes down to imagery, imagery, imagery. If only there was as much semi-free, global, high-res imagery behind GML 3 applications as has been deployed for Google Earth, we'd all be deliriously in love with GML. Stefan Geens and Frank Taylor would be tirelessly blogging about all the awesome possibilities of GML. Google would have indexed half a billion GML documents. I might even write a Python GML library. People aren't doing things with KML that you couldn't do with GML. It's all about the free-ish imagery on the KML platform.
(with apologies to James Carville)