But Path MTU discovery is a bit more complicated. I'm not looking at any docs at the moment, so I hope I'm not completely wrong about this, but as I recall the discovery process tries to send packets to each hop. First discovering the route path, and then trying to determine the mtu of each hop. While the intermediate RFC1918 addresses can reply to things they happen to get, you can't directly send a packet to them to see if they will want to fragment it.
That isn't the way it works. In PMTU, each hop *may* send something back to you. In the best case, in fact, where your initial MTU guess is correct, nobody will send you anything. In the worst case, where every link sequentially requires a smaller and smaller MTU, every hop will send something back to you. But you never send out anything except to your ultimate destination.
But perhaps it would work if everyone accepted rfc1918 sourced packets.
Yes. As far as I know, filtering by source address (or policy routing, or source routing, but I mention source address filtering because that is a widespread practice) is the only thing that would prevent PMTU from working properly with private addresses "in the middle". -Phil