Is there a detailed description on the .qgs file structure somewhere? I checked here: http://mrcc.com/qgis.dtd ("The requested URL /qgis.dtd was not found on this server.") and here- https://svn.osgeo.org/qgis/trunk/qgis/qgis.dtd (wasnt very detailed).
It would seem there isn't. According to bug report #4408:
It was filed eleven months ago and last updated eight days ago. The target version for fixing the bug's version 2.0.0, too. If there is any detailed documentation then they'd have fixed it earlier, I think.