NOTE: For 4.1 this functionality is disabled by default, and can be enabled from Administer > CiviEvent > CiviEvent Component Settings. When enabled, cart style registration is used for ALL active events.
Make the registration interface allow for registering for multiple events with just one checkout.
This would be a sort of shopping cart where the user can add and remove events from the cart and then go through the checkout process where you can mix and match contacts for each event and then checkout and pay once.
We've implemented a version of this and attached a patch. It has some stuff that specific to the specific website we made the patch for, but we thought we'd release it just in case someone wants to give it a go.
This is a patch to CiviCRM 3.4.4.