And then if you want to draw to a canvas instead of an off-screen buffer,you just use a Canvas instead of a DrawingBuffer.
I don't know why you have to specify them at all. :-)
Why would a canvas (not context, you've explained why a context may wish
to paint to different surfaces differently, e.g. to have an area with AA
and an area without or something) ever need to have its settings changed?