Currently different output formats use different streams to create their format. Some of them use result marshallers, others manually create XML and then throw XSLT at it for Findbugs or HTML and JSON/TXT are written directly as a manual process.
I think the output engine needs a re-think for 2.0. I like the marshaller approach and I think we could probably pull all output systems into that architecture - which would clean up the current flow quite a bit.