Is L7 port forward better than L3 destination NAT on Internet?

My current conclusion is: L3 DNAT is better for local scenario (like localhost or Intranet) while L7 is for Internet.

Imagine that for some reason we need to set up port forwarding between two hosts from all different continents (a total of three hosts, named Alice, Proxy, and Bob). Data is sent from A to P, and then from P to B, and vice versa. If, for example, we deploy L3 DNAT packet forwarding on iptables, then if data has been sent from A to P and when sending from P to B, the packet is lost, then the retransmission needs to start from A again. If we have a L7 port forwarding, we have a simple program that reads from one socket and writes to another, then we have all the data in P’s network stack so the retransmission can simply be done by P, no more annoying retransmission latency from A to P.

I understand that there are significant performance benefits to L3 DNAT, since there may not be a need to go through the network/protocol stack, but does that pale in comparison to the possible disadvantages of transmitting over the Internet (as above), especially when the latency is high (which is not the case with the local networks)? Or is what I said completely nonsense? Please correct me.

I’m also curious, if I use eBPF to offload this forwarding, can I let the packets go through the protocol stack to avoid the above situation?

This was previously posted on NE but I have to move here because of being off-topic.