This will make it possible to run all output formats at the same time. Unfortunately, this may be a backwards-incompatible change: in gcovr --xml foo, is foo the name of the XML output or the name of a directory with coverage? Similarly, how should gcovr -xv be parsed? I don't know if argparse can be configured to stick to the old interpretation, or whether this would be an acceptable incompatibility.
I can't work on this right away. My current focus is on cleaning up the HTML output format. But separating output generators is the next step so that it becomes easier to add new generators.
If you or anyone else would like to work on this that would be very welcome, and would get this feature out much faster!