I did this stuff years ago, but I think I have forgotten more than what I remember. I don't know the actual answer to your question off the top of my head, but I think that the naming of the jar files has something to do with versioning. I think it generates a manifest and whacks it into a jar which comes down with all the rest. Either that or one of the prefixes is for metadata about the jar, and the other one is the actual jar.
Also, if you update the version of one or more of the jar files, the old versions sometimes stay in the cache. I can't remember the naming convention they use for this, but it may have something to do with it.
Also I think from memory that what ends up in the cache is different depending on whether or not your jars are signed. I think it keeps signed jars in a different area to unsigned jars.
These links might be useful:
Web Start docs:
link
JNLP spec:
link