It's a binary plist. I'm unaware of a plist editor or converter targeting GNUstep as such, but I think GNUstep does support bplists. Hence, you should be able to write a converter/extractor yourself.
However, I'm looking at a arbitrary .webarchive I found online. I'm only guessing the structure and contents from viewing this file using 'less'. So -- and I'm only guessing -- it seems to me that files don't have a "local" name or ID, and aren't referenced using one. That is, HTML doesn't seem to be rewritten to use a local file. I would suspect that Safari intercepts resource loads and serves content stored in NSDictionary, which (if I'm guessing right) is ingenious.
It does mean a trivially 'unpacked' file will not find its local copy of resources.
Perhaps the right way to do this is to take a web browser apart and hack it to access appropriate files in the .webarchive when a resource load is requested. Or even to build a GNUstep browser. If you're enthusiastic enough, Chromium Embedded Framework sounds like a neat way to build a GNUstep browser.