When any contract function is called - delegatecall or otherwise - the EVM loads the requisite pointers & values into that call frame's volatile stack/memory.
Example: Let's say we have contract A delegatecalling to contract Delegate.
Unless you explicitly:
a) align both the caller+delegate contract storage
b) explicitly pass in the caller contract's storage reference addresses as arguments to use in the function's call frame
your storage pointers are left up to the Delegate's standard function context.
Any correction/insight on this front is appreciated. Thank you.