The width and height of a legend is determined by both icons and rule labels, so there is no way of knowing this on the client side.
The standard says the the width and height parameters can be passed to indicate a preferred width and height, and most servers (deegree, arcgis, map server) will return an image of the exact specified dimensions (which may look ugly when the aspect ratio does not match). The default width and height (if no width or height are specified) can be determined from the capabilities xml.
Geoserver will apply the width and height to the icons and leave the font size intact (it looks like this is not really according to standards). On the other hand geoserver supports a dpi setting (defaulting to 90,73).
As most servers support width and height, it think we should support it and try to achieve the same result in geoserver by using the dpi option.
From the WMS SLD profile standard:
width: This gives a hint for the width of the returned graphic in pixels. Vector-graphics can use this value as a hint for the level of detail to include.
height: This gives a hint for the height of the returned graphic in pixels.