то есть каждый разраб, который использует udp обязан озаботиться об мту?
Он может тупо полагаться на механизмы фрагментирования нижележащего протокола (ip) при посылке больших датаграмм, но должен быть готов к тому, что данные могут не дойти по получателя, и как-то этот момент предусмотреть.
upd: Ещё один момент. Так как udp не является протоколом с установлением соединения, то обе стороны вполне могут полагаться на pmtud, который будет выполняться операционной системой.
А вот tcp-сервер, отвечая на входящие соединения, естественно, запустить pmtud уже не может, и полагается на mss, полученное от клиента.
С GRE всё ещё сложнее, так как он вообще ничего не знает ни про мту и прочее. Тут либо нужно крутить руками, либо всё заботы будут перекладываться на конечные узлы, трафик которых попадает в туннель. Они уже сами будут вычислять максимальный размер передаваемых данных.