Many would still do with a portal-like contract yes. But it is not the job of the rollup or the kernel circuit to think about linking these. I don’t see why we would need to provide extra tooling for setting this, seems like it could be done by setting a public value?
My intuition was that by not having to deal with mapping inside the kernel circuit, deployments become simpler from an engineering perspective, but that might just be me not having my head wrapped fully around it.
The push behaviour would make the transactions follow the semantics of most other message bridges. (Optimism, Arbitrum, Wormhole, etc).
Yes, complexity pushed onto L2 contract dev.