I suppose you are passing the attributes to each hook in order to aggregate attributes from multiple hook calls? I'd feel even better about it if the original attributes couldn't be lost by calling the hooks. We could at least easily avoid passing the core_attributes to the hooks. Not sure if this makes it better or worse though.