Agreed. The same thing happens for me.
I found a partial workaround until Google Earth is fixed. I saved the
file as merged_before_v2.kmz.
The changes are:
a) store all of the subordinate documents (northeast.kml,
northwest.kml, cross.png) in the /files directory. Google Earth
appears to save NetworkLink objects in .kmz's only to /files.
b) keep any styles in the subordinate documents. For example, David
has a style in a subordinate called "sn_cross" that references
cross.png. Keep that style.
c) create a "fake" style in the top-level doc.xml file that mimics the
subordinate style. For example, create a style called "xxx" in the
top-level doc.xml that looks the same as "sn_cross". The only
difference is that it should point to files/cross.png instead of
cross.png. If you do not do this step, Google Earth will not save the
cross.png file to the new .kmz file when you save the NetworkLink
objects.
Note: I tried to move the styles to the top-level doc.xml and simply
reference them from the subordinate .kml files. That would save some
of the pain/kludge of the workaround. I couldn't get it to work. I
tried referencing the style as ../doc.xml#sn_cross. I didn't spend
much time on it, though.
The other workarounds I tried were:
1) one of David's root images is stored in a /files directory. When
Google Earth flattens the merged_after.kmz, the sub-files are created
in /files. I wondered if Google Earth took the image /file. I
renamed it to /filesxxx. Did not make a difference.
2) I removed the intermediate /network folder. That moved /file0, /
file1, and /file2 up a level. Did not make a difference. It still
flattened into /files.
3) The top level kml file is called doc.kml. One of the subordinate
files is also called doc.kml. I renamed the subordinate file to
sub.kml. Did not make a difference.
4) I opened doc.kml. Assigned an id to each <NetworkLink> tag. Added
a <name> to each NetworkLink. Didn't make a difference.
5) I tried saving from My Places. Didn't make a difference.
6) I recreated the file from Google Earth. I created NetworkLinks to
the files on the hard drive. Google Earth stored them in the /files
directory in the kmz file.
7) Recreated the .kmz with all files in the /files directory. When I
saved, the cross.png file was lost.
8) I added an image tag (img src="../images/cross.png") to one of the
placemarks. I saved all three NetworkLinks as a kmz file. The
NetworkLinks saved in the /files directory. The image did not save.
9) I saved the individual Placemark (not NetworkLink) with the
cross.png image as a kmz file. Both the file and the image were
saved. The cross.png image saved in the /files directory.
10) I saved a single NetworkLink node for that same placemark as a kmz
file. Only the Placemark was stored in the /files directory. The
images file did not save.
11) I moved the cross.png style to the top document, doc.xml. When I
save the root, all of the NetworkLinks save to /files. The cross.png
file also saves to /files. However, the style does not work/show in
the subordinate NetworkLink object.
I'm using Google Earth 4.2.205.5730 on Linux.