The "right" solution goes back to Don's suggestion: calendar
items should just *map* acs_events to a calendar. Then you can
extend acs_events to do exactly what you mention, except
calendar doesn't need to perform multiple queries to find all the
events, it can just query the acs_events table.
The issue which remains is then what happens if you want to
have your data type extend something *other* than acs_event,
but I'm thinking this is a small subset of cases... Thoughts?