
Only solution I think is to make --route default and compulsory for the moment. Else people will create maps that havoc other maps without realising.
I strongly advice against this. The problem has been around a very long time and nobody noticed, so I don't think it is that critical. The workaround is simple: Do not use the latest version of MS/BC until the problem is fixed.
On the other hand, routable maps seem to be much larger than non-routable maps. If you change the behaviour of mkgamp there you can break things by enlarging the maps so they do not fit into the memory they used previously. If the map is tailored to fit an 1GB SD card, it will no longer. There are older devices that have a limited amount of built-in memory and you might make maps unusable that now are fitting into the devices.
In short: I think a compulsory change would break more than it helps right now.
Felix, I appreciate your detailed work in investigate this bug, which will concern mkgamp in the future. But at the moment it is not known, where this NOD-Bit resides, so we can not do a clean solution. As you have shown with your detailed work, there is a simple workaround. If you want universal non-routable maps, then delete the routing specific entries from the style file and set the --route option. Therefore it *IS* an option, to be able for each user to fulfill their own needs. There is no need to make this mandatory. Ok, I admit it is a little confusing at the moment to need to set the --route option to generate a working nonroutable map for the future version of MS, but I think it is only a matter of time, until mkgmap handles the flag correctly. If in future the problem will become a bigger one, for sure someone wil look for a solution. At the moment there is simply no urgent need.