Introduce concept of "capability" globals for protocol next
Globals in the wayland protocol can be classed into two groups: "capability" style globals, these are available for the entire lifetime of the connection, such as wl_shm. "dynamic" or "hotpluggable" globals, these may pop in and out as device state changes, such as wl_seat.
The capability style globals may be taken away by the server by disabling the global, but this leaves clients in an awkward spot. Clients either choose to overengineer some solution to handle capability style globals vanishing or just flat out ignore destruction of globals like wl_shm.
My proposal is to make the idea of a "capability global" a first class part of the protocol. Capability globals would be garunteed to be present for the lifetime of the connection and servers may not remove capability globals.
Regarding specifics there needs to be discussion how to integrate capability globals into the 2.0 protocol.