Using plone.memoize.instance with several ZEO clients

You have listed 2 problems: 1. acquisition wrappers and 2. methods.

WRT 1, if your application does not need the acquisition context or can recreate it, then instead of caching the wrapped object, cache only the base object ("obj.aq_base").

WRT 2, you can extend the pickling capabilities (it uses the same base features as Python's "copy" - and those are documented in the Python library reference). Note however, that this might make your site more vulnerable with respect to attacks (in the case that hostile users are able to present pickled data to your site).