I think the import/precompute witness path can record bytecode reads caused only by block warming, not by actual execution.
This is not a Rust memory race. It is a logging ownership/scope bug whose output is timing-dependent because execution and warming share the same CachingDatabase.
Current shape: