1. Object Manager data can be assigned only to individual objects such as rectangles or curves. You cannot store custom data inside the document itself or structural elements such as pages and layers.
2. Object Manager data is limited to a few very basic types (numbers and strings mainly). So if you want to store a more complicated structured data you would need to either use several data fields, or encode the data into, say a string.
3. Object Manager data is visible to the user. While this is its strong point, sometimes it is not desired to allow application users to see or edit the data inserted by a custom solution.
Download source: CustomData.zip