I learnt from the yellowpaper that at the end of a contract execution, there could be a list of suicide accounts that will be removed.
my question is, why and how would one smart contract remove other accounts (smart contracts).
for example, I understand the need of self destruction. when one smart contract is finished, it destructs itself. but why do you need to destroy others and how?
Can my smart contract destroy a contract owned by another person?
also, engineering wise, how this destruction is implemented? for example, do we actually modify previous blocks' contents related to destructed accounts? or we just update the change in the tree structure?