Pinning adds state to the resources that is modified explicitly by applications. This makes it more difficult to compose multiple components that use WebGPU together as component might not realize that state was modified by another one.
Having a stateless alternative to usage pinning would be better, but I don't know if there's one that also keeps the overhead of validation and memory barriers low.