Contracts cloned are not independent?

Hi there, suppose I’m using Clones.clone to create new contracts for a given template, as given in the code below. Now for a newly creately contract by cloning, the function calls to the new contract are delegated to the template contract as internal transactions. For example, in the graph below, the highlighted contract is the original template contract. And all newly created contracts are supposed to be independent from each other. I am wondering what is happening under the hood. Thanks.

address newTemplateAddr = Clones.clone(templateAddr);
ITemplate(newTemplateAddr).initialize(uint256 para1, string memory str1);