We were faced with complaints that the previous version of bug-tracker on openacs.org was too slow, so we wanted to do everything we could to make sure it was fast.
One of the things we decided to do was to denormalize the latest version of data in the bt_bugs table, and then use that as the item_subtype.
We had to do an item_subtype anyway, because we needed a place to store the bug_number with a unique constraint.
So basically we put everything we possibly could into bt_bugs (the item subtype), and everything that needs to be versioned into bt_bug_revision.
Does that make sense?