sync::Once, per instance

It’s almost certainly just because it was more “obviously correct” during the initial implementation. We should be able to relax it.