Maybe I'm misreading this but...

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