I chose XCF over OpenRaster as the project format for an application because it felt much simpler [1]. Plus, OpenRaster seemed to be not there yet as a standard, and for something that is not recommended as an interchange format [2], XCF is somewhat stable and mature. With more effort, I think XCF can be a cross-application standard. What are your thoughts?
I think there’s a plan to have a libxcf eventually (spinning off the app/xcf code into its own library), so that would probably make it easier for third-parties to use XCF. OpenRaster was intended to be the FLOSS version of a PSD file though.
One plus point of XCF is that it is very easy to write it using basic functions like fwrite, as long as all you want is for your application to export something that GIMP will be able to import. So perhaps some offer of stability (standardization) is more important (and more feasible) than a library.