Are these object attributes, then? Unfortunately the Content Repository (not to be confused with CR-the-person) has its own attribute system. Anyway some day it would be nice to be able to deal with both in a unified way but that's a long, long ways down the road. It would be good to get your code cleaned up and reviewed and PG-ized and folded in if everyone likes it.
Anyway ... Jade, yes, the cr_item used by photobook is related to the user object, as you say cr objects can't be subtyped from arbitrary object types. But this way you do get an edit audit/history as well as the use of autogenrated forms.