Although they are called GUIDs (global UNIQUE identifier) by FileNet, they are ambiguous within the ObjectStore. An object ID is only unique within its class (and sub-classes). But there can be objects of sibling classes in the same ObjectStore that have the same ID. When creating a property from a template for example, FileNet creates a new object of a PropertyDescription sub-class that has the same ID as the PropertyTemplate object.
To get a unique identifier within an ObjectStore, you need to combine the ID of the class and the ID of the object. Please note that you also need to take care about the scope of the classes. There are two different ClassDescriptions with the same ID, one in the Domain scope and one in the ObjectStore scope.