Although I am not certain, here’s my attempt at making sense of the situation.
The change is not listed in the Change Logs for IFC4.0.0.0, so I can’t really find out why is was deleted or what replaced it.
Even when looking through IFC4.0.2.1, I am not sure where you would even store such information. Perhaps someone else here may know something.
From the looks of it, \__ExternalSurfaceType, \__ExternalSurfaceClass & \__ExternalSurfaceArea are part of the IfcComplexProperty that is named ExternalSurface, as is mentioned in the definition:
External surface area quantity. Several complex properties of this type may be attached to this Pset, one for each external subsurface with different properties
I think this is the reason for the \__ before the properties.
I wish it was easier to add material operations to entities. We architects in Germany need this starting from a certain project phase, specially on concrete, I wonder how others resolve this, aside of creating custom psets.