On Mon, Oct 28, 2019 at 6:16 PM David A. Harding <dave@dtrt.org> wrote:
A parent transaction near the limit of 100,000 vbytes could have almost
10,000 outputs paying OP_TRUE (10 vbytes per output).  If the children
were limited to 10,000 vbytes each (the current max carve-out size),
that allows relaying 100 mega-vbytes or nearly 400 MB data size (larger
than the default maximum mempool size in Bitcoin Core).

Thanks, Dave, I wasn't aware the limits would allow this many outputs. And as your calculation shows, this opens up the potential for free relay of large amounts of data. 

We could start special casing to only allow this for "LN commitment-like" transactions, but this would be application specific changes, and your calculation shows that even with the BOLT2 numbers there still exists cases with a large number of children.

We are moving forward with adding a 1 block delay to all outputs to utilize the current carve-out rule, and the changes aren't that bad. See Joost's post in "[PATCH] First draft of option_simplfied_commitment"

- Johan