> Most nodes already forward any packet they can handle
On second thought, I guess I am wrong here, since the default MTU in Linux is a very low number (something like 1500). Robustness would be to have limit by default and fully rely on MTU discovery.
Although the low default was probably established because of the aforementioned ICMP filtering issue.
MTU discovery is "robust". Most nodes already forward any packet they can handle. The problem is that _some_ nodes filter out ICMP packets (hence breaking MTU discovery) but the link still "kind-of-works" (tm). Nodes that break MTU discovery should be considered 100% broken, but instead of fixing them we "accommodate" them by statically (manually) lowering our outgoing MTU, hence proliferating the problem.
Robustness works against us. If half-broken firewalls were considered fully-broken, they would be replaced instead of accommodated.
Aside: the `Fragmentation Needed` packet should have been part of the IP header, not a separate protocol.