The paper "Separate Your Domains: NIST PQC KEMs, Oracle Cloning and Read-Only
Indifferentiability" by Bellare, Davis, and Günther is a great reference for your question.
A few highlights:
- They formalize the notion of "oracle cloning": simulating multiple independent oracles for a single one. Domain separation is one technique to achieve this.
- They survey Oracle cloning techniques in PQC submission and find many broken schemes due to broken oracle cloning practices, which might interest your exploration of proofs.
Oracle cloning: the task of creating some scheme $R$ based on a (publicly accessible) ideal scheme $S$ so $R$ is as good as some other ideal scheme $T$ is a natural fit for indifferentiability. However, the original indifferentiability cannot guarantee composition in multi-stage games where no state is shared between the different stage adversaries. So, the paper introduces another notion of indifferentiability, Read-Only Indifferentiability, which allows for a static readable state.
The paper goes on to capture cloning techniques as functors and proves the security of some cloning techniques. Due to indifferentiability, these results are composable in that any appropriately cloned random oracle behaves as good as a fresh random oracle in any context.