The main issue is “topology”
This is why in IfcXtreme project I suggested “Break down IFC and reduce/delete not only IfcObjectDefinition, but also all general entities behind the main/end entity”
For instance: IfcWindow is just a solo entity in IFC schema and doesn’t have IfcObjectDefinition, IfcObject, IfcProduct, IfcElement, IfcBuildingElement
This is not just IFC’s issue, all other closed file formats and their schemas have the same vitally important issue