I'm not too impressed with gstreamer. It has difficulties to play vorbis here on ubuntu 10.10 due to some completely unknowable and unfathomable reason. It may well be pulseaudio's fault, though.
More to the point, I saw that something simple like volume control on the audio pipeline contains something like 30 kB of code because it handles every possible format like 8, 16, 24, 32 bit integer audio and 32-bit and 64-bit audio. Additionally I think there was some dynamic runtime code generation involved. So much of that 200k LOC might actually go away if the design was simplified somewhat.
Also when trying to hook a simple LADSPA plugin of mine into pipeline using gstreamer I encountered various random issues, such as the need to use audioconvert (which ought to be injected automatically where necessary, lest people have to pepper their pipelines full of that) and queue (some kind of buffer, many things don't work without explicit buffering for some reason).
Even worse, since gstreamer can't support stereo ladspa plugins in any way, one is forced to implement these manually by deinterleaving (= splitting) a stream into separate pipes, then putting them through the plugin using the appropriate sprinking of audioconvert / queue, and then assembling it back with interleave. Of course, the result is not usable to pulseaudiosink because the channel assignment is lost along the way with no way to define it on command line...
In short, I think this media framework is not quite the success story it is portrayed to be, IME.