Why the export list is written down
The host is written by someone else. A contract that is only in the compiler output is a contract that will drift.
The cost of the boundary
Crossing the boundary copies. The cost is per crossing, which is why crossings are batched.