Grasshopper operates (mainly) as a Directed Acyclic Graph (DAG). This means dependencies flow one-way only, and there are no dependency loops. Updates flow only downstream.
When people talk about geometric constraints they usually mean some system where different elements can be interacted with while maintaining specified geometric relationships between them. This is in direct conflict with the DAG approach, because the interactions between the elements need to be bidirectional.
Say you have a pair of lines you want to keep parallel, but also to be able to drag the points of either one. This is not possible to set up as a one directional dependency.
Some geometric constructions can be set up in a directed parametric way, but this is not the same thing as a constraint solver in the way that term is typically used, and if you want to switch which elements drive and which are driven, it generally requires making a new GH definition.
All this is not to say it’s impossible to include loops, bidirectional relationships or constraints in Grasshopper, but just to point out how these things require something beyond its main way of working.
The one-way dependency is an important part of Grasshopper’s conceptual clarity though, so anything which goes outside of this faces UI challenges in making it clear and easy to use.
Kangaroo tackles this by containing all the cyclic/bidirectional dependency inside one self-updating component on the canvas, with everything upstream and downstream of it keeping to the regular Grasshopper one-way system; the relationship setup as Goals upstream and the processing of results downstream.
This works well for some things, but for some types of geometric constrained systems it becomes very cumbersome compared to conventional constrained sketch setup, where the creation of relationships happens mainly by clicking on the geometry itself.
The Constraints project aims to tackle this within the Rhino interface. There has also been some discussion of new ways of setting these things up within GH2. This is all still WIP stuff though.