It would be quite heavy on the browser to draw all segments, including the direction arrows, and more importantly the road names and their position on the segment and the angle in vectorial mode. Not impossible though. It's still easier and cheaper to do it once on the server side.
The browser essentially does this now, though it doesn't actually produce the images for the visible road layer. But every road object is loaded from the server which allows us to manipulate that object. The browser is tracking it, panning it, zooming it, etc., with every movement of the map.
I would think we are closer to having the visible road layer rendered completely in the browser that we think. At least, I hope so!
If we're speaking of graphically drawing things out, the browser is already doing this. The server just sends the raw data about the objects (coordinates, basically), then the browser renders everything through SVG data. The selectable road object is actually separate from the road that you see. It is an invisible vector object that gets manipulated as you select it or hover over it.
Because all objects are essentially data, and not graphics, we can create nifty add-ons, like timbones' color hightlights script, that can manipulate segments.
The only graphics that the server servers up is the Bing imagery, which comes from Bing servers, so it doesn't present an additional load on the Waze servers.