Requests are recorded before decompression:
SessionWorkflow::Impl::_dispatchWork()
...
TrafficRecorder::get(_serviceContext).observe(session(), _work->in(), _serviceContext);
_work->decompressRequest();
During replay, requests do need to be modified (e.g., to re-write cursors to match state on the shadow cluster).
However, replaying an uncompressed request which was originally received compressed reduces the similarity of the replayed workload - the server will read more data from the network, and not spend time decompressing.
Investigate tracking compressed vs decompressed, and re-compress requests before submitting them to the shadow cluster, if required.