Why does A exist at all in this situation? Why not just have free functions in a module if you want namespacing?
Either way, there's really no reason to cache an A like that. A contains no data, so it need never exist in the first place. Heck, if you check the generated LLVM IR, you'll see that selfnever even gets passed to those methods. Why? It contains zero information; there's no point.
I probably should have elaborated, but the main use for unitary structs are for things like error types where there's no extra information, or as generic parameters where you need to pass a type, but you want to pass a bundle of trait implementations.
Also for messing with the type system (though I am reliably informed that empty enums are the better solution there because they cannot accidentally be instantiated).