It depends on the blockchain and on the implementation whether a smart contract is immutable. Technically, all smart contracts running on EVM (the most popular smart contract virtual machine) are immutable. However, it is possible to call smart contract methods from a different smart contract while operating on the same state. Some smart contracts use this as a hack to get around immutability, by changing which smart contract is called by a proxy smart contract.
Generally immutability is better for security reasons, but proxy contracts are useful if someone is testing in production. There have been cases of immutable contracts with bugs that locked millions of dollars of cryptocurrency with no recovery possible.