You can see that the nested approach results in Reference B containing an Action:
But the Last() approach works:
TargetRowNested.ModifyRows(
[Table A].[Reference B],
TargetRowNested.[Reference B].Splice(0, 0, [Table B].AddRow())
)
RunActions(
[Table B].AddRow(),
[TargetRowLast()].ModifyRows([Table A].[Reference B],
[TargetRowLast()].[Reference B].Splice(0, 0, [Table B].Last())
)
)