Why do we need a different instance for each cache? And if we need a new instance per cache for our standard marshaller, doesn't that mean that a custom marshaller is very likely to need a new instance per cache as well? 

This looks very much like a hack, it would be much nicer if our configuration would support a "marshaller factory".