I have not looked at the Composite protocol in detail but I assume it would be possible for the composite manager to do some buffering and handle updates for several clients at the same time with a single context switch.
Or one could let the compositing manager run in the same thread as the X server.
Btw, how expensive is a context switch compared to the actual drawing?