в личке динамик аргументирует тем, что линки не должны влиять на связность trunk'ов. что транклинк может быть только между двумя транками. насчет связности я сам помню такую фразу в вики, что если удалить линки, то связность не должна быть нарушена. но я, как и тогда, так и сейчас, не могу понять смысл линков в таком случае в принципе
*_link придумали для того чтобы как-то отмечать лепестки на развязках типа "лист клевера". Например, если пересекаются два хайвея, но из-за листа клевера у них нет топологических общих точек. При этом каждый съезд это сущность отдельная от основного хайвея, например, у нее свое название типа "Exit 22" и мы не хотим чтобы она путалась в данных с настоящими хайвеями, поэтому мы не можем ее отмечать тем же тегом, что и основную дорогу. Например, при рендеринге можно отключать отображение X_link на несколько зумов раньше чем cсоответствующий highway=X Аргумент про связность относится именно к такому сценарию: если мы тупо выкинем все *_link, то граф дорог должен остаться визуально непрерывным. Топологическая связность при этом все равно сломается, потому что, например, у двух хайвеев на развязке "лист клевера" нет общих точек, они проходят на разных уровнях. Какой ставить *_link при пересечении двух дорог разного статуса, на мой взгляд, вопрос эстетики. Исторически сложилось, что почти все замапплено по максимальному статусу, т.е. на пересечении trunk и primary ставится trunk_link.