Я вижу в отношении две сущности, объединённых через название роли. Убери «forward»/«backward» — маршрут превратится в мешанину. Если есть forward:stop и backward:stop, обозначающих остановки на маршруте в одну сторону и в другую, то что мешает сделать следующий шаг: расширить классификацию? Сделать префиксы «NN:forward» и «NN:backward», где NN — номер маршрута, и собирать все веи и остановки в одно отношение. Для 108-го маршрута, например, будут веи с ролями «108:forward» и просто «108», остановки «108:forward:stop» и «108:backward:stop». Всё это так же красиво будет отражаться на карте, а роутинговым программам будет несложно догадаться, где едет автобус и где он останавливается в каком направлении. Конечно, редактирование получившегося отношения будет непросто, а новичкам вообще сложно объяснить целесообразность, но получается вполне стройная система.
Если после прочтения появились возражения вида «да это смешно» и «зачем вводить дополнительные префиксы», хочу спросить: зачем вообще вводить префиксы? Для чего писать forward и backward для каждого отрезка и точки, когда можно просто разбить отношение на два, foward и backward? Иначе для чего придуманы отношения?