Modifying members of an opaque struct (reordering, removing, etc.) doesn't break the Application Binary Interface (ABI), which is crucial for maintaining forward compatibility.
Consider this non-opaque struct definition:
typedef struct MyStruct {
int i; // 4 bytes
float f; // 4 bytes