We can improve performance of the SDC with two small enhancements:
1. For modified documents (not already BSON-backed) we re-serialize them once and store them in the cache so that we don't repeat this work each time we loop over the cache.
2. Add a fast-path that matches against the entire BSON document for documents that are trivially convertible and below some threshold size. This saves us the work of (re-) producing a projected document each time we loop.
For UncorrelatedPrefixJoin and other $lookup / $match benchmarks, this can result in substantial speed-ups.