It seems the preferred way to use Google Earth in an application is to embed it within a web page then access it via the javascript API.
However, rather than embed it in a web page, is it possible for some code to embed new functionality within the Google Earth desktop application itself? or is writing my own app with an embedded web browser my only option?
is it possible for some code to embed new functionality within the Google Earth desktop application itself
Depends exactly what you want to do. Can do a fair bit (but not everything!) with KML and in particular NetworkLinks.
is writing my own app with an embedded web browser my only option?
Not the only, but probably the most flexible.