Richard,
thank you for this detailed response.
I have tried to run through your methodology but have ended up with slivers for example where the roads form bends. Also, when I dissolve the result of the first intersection operation, for some reason, not all the polygons in the junction areas are dissolved together. Again, this may be a function of the geometry, i.e. where junctions are not completely perpendicular, the polygons might not actually touch and thus not be 'recognised' as belonging together.
I think with a different dataset, your suggestions could work, though, so I will definetely keep them in mind for future reference. For my current project I have decided to approach the problem somewhat differently, as my dataset is too large to correct all 'errors' by hand.
Thanks again.