I had a similar problem which was neatly resolved using the @Aggregate_Aware BO function.
To answer why incompatible objects get into the same universe, here's my case: A small-budget purchase requisition system, where a number of departments have fixed budgets which they can consume over the course of the year. The universe facilitates listing umpteen details about the requisitions. The budget _utilised_ can be summed up from a value field available at requisition line level. There is also a summary table maintained having the fields "Budget Year", "Dept.", "Budgeted Value", "Budget Utilised" and "Budget Remaining".
The Budget Utilised field is an obvious candidate for Aggregate Awareness. However the other columns are obviously incompatible, since a Budgeted Value only makes sense for a given department or departments for a given year or years; there is no such thing as a budget for a given requisition.
I need to allow queries with the columns Year, Dept and Budgeted Value, but cannot allow any other columns in the same report because no other combo makes sense.
This was achieved by making each of these "Aggregate Aware" as in @Aggregate_Aware(BudgetTable) (without any lower-level aggregate tables) and selecting all but the relevant two columns as incompatible objects in Designer.
Worked like a charm!