IIRC, the child canvas is treated as a raster image - thus, you should only have to set the top-level group's alpha/transparency accordingly, and everything should work work/look correctly (note, I haven't actually tried this - but that's how I remember the system to be designed).
Basically, the window is a composed of raster images that are recursively added, and the content is taken from another/embedded Canvas.
For details, refer to the implementation of Canvas::Window/Canvas::Image and Canvas::Element (I think you once mentioned being familiar with C++?)