“type=restriction + restriction:hgv=only_left_turn” vs “type=restriction:hgv”
Раньше type=restriction имел совершенно конкретное значение - ограничение поворотов для транспортных средств. Сделали конвертеры, которые пользуются этими данными. На грузовики им наплевать, они их не поддерживают, и тегов для них в тот момент никаких не было. Отсутствие тега restriction=* при этом являлось ошибкой, которую конвертер пытается исправить используя умолчание. Потом кем-то добавляется тег restriction:hgv=, который внезапно означает, что type=restriction теперь может не распространяться на легковые автомобили и его надо игнорировать, а отсутствие тега restriction= теперь не ошибка.
Вот это и есть ломание обратной совместимости, когда для корректной работы теперь надо учитывать теги, которых раньше не было и никто про них не знал. Если кто-нибудь добавит ещё один тег, например january_01_only=yes, который обозначает, что данное ограничение действует только первого января - это будет точно таким же ломанием совместимости.
Чтобы этого избежать - правильнее использовать префиксы/суффиксы для изменения основного тега, чтобы для существующих программ ничего не менялось.
Вы перевернули всё с ног на голову, выдав желаемое за действительное.
Имел совершенно конкретное значение type=restriction + restriction=. Использовать обрубок схемы - сам себе буратино, как оно вообще должно работать если значение restriction= не учитывается? Что там по-умолчанию, можно по этому ребру ехать или нет?
Очередной косяк со стороны конвертера, тег except был там если не всегда, то уже очень давно, и там могло быть в исключениях и автомобиль, не учитывать это - опять работать с обрубком схемы.
В общем вы должны признать, что конвертер схему запретов не поддерживал поэтому выдумывались костыли под конкретный конвертер.
Притом пропозал зарублен на корню, голосование даже не началось.