Currenty getbinpkg does a simple cpickle.dump and cpickle.load for all its metadata. This is far from optimal for reasons similar to the ones already outlined in bug #108412. Would it be possible to rewrite that piece of caching code to use portdbapi? It is the same kind of data after all. Maybe %encode all weird symbols ( / => %2F ) in the url and cache it as you would cache local metadata.
We can consider this fixed by the new protocol (bug 194552) which uses a plain text file for cache.