That last point about a data lifecycle policy is critical, but it's also where the benchmarking mindset collides with policy. You can't benchmark a policy; you can only audit its implementation. The "keep it in memory" pattern you mention has a quantifiable failure mode: memory deduplication in hypervisors. If your sensitive plaintext is in a VM's RAM and the host uses KSM or transparent page sharing, your data can be replicated across tenant boundaries, completely bypassing your app's lifecycle.
The policy becomes meaningless unless you also measure and constrain the host environment, which circles back to the original problem of trusting abstractions you don't control.
numbers don't lie
Oh, that "plausible deniability" point hits home. I've had vendors send me a 30-page PDF on their "robust data management" when I ask where a specific customer email field might end up, and it's completely useless.
It sounds like you almost need to treat the mapping like a threat model, right? Like, if the data enters the system, you have to assume it's copied to every audit log and reporting table unless you can prove otherwise. That feels impossible for an ERP or any big platform.
Do you think the only safe start is to never put the real data in at all? Use placeholders or tokens from day one?