That looks to me like its mapped correctly (except I presume the individual carriageways are oneway, if so they should be tagged as oneway=yes. And the roundabouts should be tagged as junction=roundabout).

Yes, the map does look a bit ugly with repeated names etc, but that’s a problem with the renderer, and not the data.

There are several proposed relations which might help with this, by grouping the different parts of the road together:
http://wiki.openstreetmap.org/wiki/Relations/Proposed/Collected_Ways
http://wiki.openstreetmap.org/wiki/Relations/Proposed/Dual_carriageways
But they are just proposals, I don’t know if any renderers support them.