One problem with this approach is that multiple composite collections, each containing the same collection, will clobber each other's subscriptions.  Why not instead store these subscriptions in a hash on the composite collection, using object ID + property name as a composite key?