In larger codebases with many developers, attention to the API is required in order to be able to maintain code without breaking clients.
The main downside of Badge<T> is that it comes with a performance penalty and ABI change for something that should be statically deducible (empty struct is one byte in C++).