The overwriting can be done with a combination of con and isnull, as in
Con( Isnull( [roads] ), [impedance], 10 )
Here, 10 is the value to put in the [impedance] grid at all road cells.
A similar approach is to add a large impedance at all road cells, as in
Not( Isnull( [roads] ) ) * 10 + [impedance]
This exploits the (documented) convention that false values are 0 and true values are 1.
I can't make the statements in your first post work, for instance 'Con( Isnull( [RasterRoads] ), [Cost], 10 )' with 'RasterRoads' being a rasterised road layer that is nodata for everything except road cells, and 'cost' being the cost layer already made up of slope and landuse.
I'm supposed to be using Single Output Map Algebra, right? Why does putting that statement into it not work? (the model thing remains white, it won't let me run it).
I'm supposed to be using Single Output Map Algebra, right?