If during smart contract execution it decides to send a transaction, then transaction would be created, validated and broadcasted to the network from all the nodes executing this smart contract. Network would be flooded with same transaction coming from different nodes. How such case is resolved?
Each invocation costs gas, and there is a limit to how much gas can be spent by all the transactions in a given block. So the chain of contracts calling contracts would eventually end.
Technically, there’s nothing stopping a smart contract from trying to spam the network like this, but it wouldn’t work because of the gas limit, and it would cost the initiator a lot of money making it not worth it.