* In practice it is probably going to be more complex. Those not interested in the complexity can just abstract it as header + metadata but a node finding a new block can't definitely know which txns other nodes currently have in their memory pool. IBLT will probably be more like 'header + metadata + full low-propagation txns'. The mining node will include in the message the txns that are unlikely to be in the memory pool of the receiving node to avoid IBLT failing. Anything which is non-standard is unlikely to be in the memory pool of any node following standard rules. The mining node can't change that. If they relay the non-standard txn in advance of the block most nodes will simply drop it. Stale txns (very old unconfirmed txns) may also be dropped by nodes to save space in the memory pool. If the mining nodes is aware of unconfirmed double spends then it should expect that some portion of the network is unaware of the txn in its block so that would be another txn to include the full txns. In the future there may be other reasons why a txn isn't well propagated. It may become complicated if the memory pool becomes very large and different nodes retain different subsets of it to conserve resources. Still IBLT has the ability to significantly reduce the propagation delay even if only used for a subset of the block txns. It doesn't however allow a receiving node to know which txns it is missing and thus it can't request missing txns.
The full transactions for the block are all included in the IBLT but they are XOR'd together such that successfully decoding them becomes probabilistic. So, if there are 18 transactions overlaying each other, and 17 are known to the receiver, then 17 can be peeled off leaving the 1 unknown transaction available to use. However, if >1 in the same cell are unknown to the receiver then decode fails.
Continuing the example, there could be 18 transactions overlaying each other and 18 different receivers each missing 1 different transaction from their mempools, yet they will all be able to successfully decode the missing transaction and continue building the block from the IBLT.
Yes. If an IBLT is accepted by most nodes and being built upon, then a node which fails to read it will need to request the standard block to resync.