Really not a definitive answer but an answer to complete more (waiting community :) !
The main ideas why SLD is not used everywhere as a data exchange is history, verbosity, extensibility, output support.
History
ArcGIS comes before the SLD standard exists. MapInfo format doesn't separate style from content so you can't separate data from rendering like for SLD and GML. Also because of history and retrocompatibily with older software version, models to represent map styles are not two ways compatible.
Verbosity
All people are not XML lovers and so they prefer other syntax like CartoCSS http://www.mapbox.com/tilemill/docs/manual/carto/
Extensibility
You can't do every type of styling with SLD as it is. See for example the limitation concerning hatching so Geoserver team extend the default http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/polygons.html#hatching-fill You can also think about shadow and compositing that SLD do not support http://mapnik.org/news/2012/04/26/image-filters/
Support
Depending of support (paper, devices, ...) and screen resolutions, a width of 1 in a software is not equal to the same width in other one. Paper width 1 is different from on screen. Units matters!!