Now that I look at it again, the attributes mechanism and the new userData-map stuff are pretty similar. It looks like they could perhaps be collapsed into one mechanism.
I'm not sure they are all that similar. Attributes are strongly typed, whereas user data is not. They also serve very different use cases. Attributes are predefined attached properties and user data is arbitrary. I don't think I'd advocate combining them.
