If I understand correctly CALLCODE substitute/replace (and not add) the ledger of the target contract with the one the calling contract, isn’t it ?
So that when contract Victor CALLCODE Alice, Alice does no longer use Alice´s ledger but Victor’s ledger, right ?
If true, when contract Alice calls contract Bob normally and when Bob checks
msg.sender, who is
msg.sender Alice or Victor ?