Тут можно убить сразу двух зайцев, если продумать структуру хранения маршрутов.
Например, что-нибудь вроде:

<routepoint id="....">
<osmnode>nodeID</osmnode>
<geonode lat="..." lon="..." />
</routepoint>

При этом geonode - обязательный, а osmnode - нет.
Что позволит как добавлять в маршрут узлы, которых нет в карте (грубо - если надо обозначить подход к определенной части какого-то здания или еще куда-то), так и иметь определенную избыточность, позволяющую не убить маршрут при исчезновении узла. Всему маршруту (или отдельным его routepoint, имеющим osmnode) можно назначать или не назначать признак автообновления (то есть обновления geonode по изменившимся координатам узла, на который ссылается osmnode) или, наоборот, readonly.