Consider a standalone class Example which is present in a generated proto.lock file. If this class is moved to a subclass, say Parent.Example, then proto.lock will continue to fail even if @ProtoName("Example") is explicitly set.
I expect that the value explicitly specified by @ProtoName would be taken into consideration here and the check would pass as the Proto type name should remain the same.