Not having to rewrite DRI interface code, having to worry about OpenGL state tracking semantics (GL does things different for rendering to windows and FBOs, and every driver has to repeat the mistake in classic), abstracted a bit from the OpenGL GLSL compiler. Free mipmap generation, lots of utility helpers.
Just a lot less boilerplate and cut-n-pasting all over the place.