I would add SELFDESTRUCTs to the list. They are quite unique, as they can transfer ether to a smart contract without executing its code.
Also, I would add special one-time transfers performed by EIP-779 at block 1920000.
The phrasing is a bit strange. You basically have to store a future blockhash number to be used, e.g., just the current blocknumber + 2. This blockhash is completely unknown at the time of the transaction, can only be influenced to some degree by Ethereum miners and thus provides a good-enough source of randomness for some protocols.
The approach would ...