it: I'd be much more likely to run an experimental gateway in another
process on a node than experimental p2p code inside my production
bitcoinds themselves.
Yes, it's certainly better to do that during the development phase. However if it does turn out to be good and valuable then it'd eventually need to be integrated or rewritten into Core anyway, lest we accidentally increase the setup cost of running a node and end up with a two-tier network. And if the code will eventually want to be merged into Core anyway, it might as well be implemented into it directly, perhaps behind a switch that can disable those codepaths if something goes wrong.
So I think the tradeoffs here are rather complicated and subtle.