The description in http://code.google.com/p/cistron/ mentions the following statement.
“Cistron is designed as a light-weight, fast and flexible framework for use in environments where these frameworks are often not considered because of the overhead they cause through their message interactions. It does not depend on any libraries besides the C++ standard library, so it is easy to integrate in any project.”
I’ve checked the presentation from Karel Crombecq (The author of Cistron) for using Cistron
The author mentions the pros/cons of using direct and indirect communication. Cistron implements indirect communication between components that use messages. Your approach is for direct communication that requires more dependencies between components. I suppose it works better for components that frequently update. The structure is similiar as follows.
class GameObject : Component
class GraphicsComponent : Component
class PhysicsComponent : Component
Both GraphicsComponent (CCActions) and PhysicsComponent (Physics) may affect the position of GameObject. The system should call back the “parent” GameObject for further actions when either one changes position.