There are a few of us who are working on rewriting the entire camera interface. It was originally supposed to go out in 3.0, but there were some delays. I think once 3.0 is out, the new interface won't be too far behind. So as far as modifying the draw_domain and save_annotated functions to work within the new background color stuff, it might make more sense to hold off until we get the new framework up and running. But we'll definitely try to keep this functionality interoperable.
About the orientation issue, I'm not sure. Perhaps Matt or Sam can speak to the orientation issues with write_png? I see that when we call "write_png" it does this:
return write_bitmap(out.swapaxes(0, 1), filename)
But then write_bitmap goes to a different (png_writer) write_png, which then goes to use matplotlib's write_png tools. After all that jumping I'm not sure the orientation, but I think there are still some residual orientation issues, as you can see here with the two plots generated here in the docs from nearly identical recipes (off-axis-projections use the camera interface which also makes the volume renderings):
Again, though, I think this will be mostly addressed through the new camera interface in the next few months.