The fennec frontend will want to take a snapshot of the current content window before switching to another tab (and maybe in other situations). There's currently no way to do that for <browser remote> because drawWindow() always re-renders content using a temporary layer manager, but that approach falls over with shadow layers. Rob has discussed a generic API for drawing an arbitrary layer subtree into a context, but it might be easier to somehow special-case <browser remote> initially, since we can assume a lot about its configuration and it has a simple mapping from DOM --> layer tree. All the required pieces are in place to implement this now, although bug 590294 will make things a bit trickier because drawWindow() will probably want to honor the view transform.
If we have to do this, why aren't we using asyncDrawXULElement like we did in tile-manager Fennec?
Oh, should have mentioned that that's a temporary workaround until we have drawWindow support. asyncDrawXULElement() is a slow hard-to-maintain ugly duckling that has the guillotine millimeters away from its neck. Making drawWindow() aware of (shadow) layers will result in a maximally-efficient, synchronous API that will give WSIWYG results (arguably that's an advantage over even drawWindow() of an in-process content window, in the current implementation).