Simple stateless clients often send identical Z39.50 searches in a relatively short period of time (e.g. in order to produce a results-list page, the next page, a single full-record, etc). And for many targets, it's much more expensive to produce a new result set than to reuse an existing one.
The proxy tries to solve that by remembering the last query for each backend target, so that if an identical query is received next, it is turned into Present Requests rather than new Search Requests.
In a future we release will will probably allows for an arbitrary-sized cache for targets supporting named result sets.
You can enable/disable query caching using option -o.