This is probably the result of what exactly Where Used... is doing. It's trying to find references other objects have to this object. The problem is VPN communities don't need to be referenced by anything else to be functional. Thus, they may not be used by any other objects, but they are used by the configuration.
Route-based VPNs need a community to be defined, as that is where you set the negotiation parameters, but the community cannot be used in any rules.
Normal domain-based VPNs can be defined, and traffic can work due to rules matching "Any Traffic" in the VPN column by default.
Objects for traffic endpoints can have automatic NAT defined, which doesn't count as using the object for Where Used..., even though deleting the object can break traffic.
You are correct that "This object is not used" is not the same as "This object is safe to delete". They're two different questions, and the latter does require deeper knowledge of the object's history in the environment.