I have not looked deeply into the code concerning how a planning group is validated for connectivity. It seems to me there are a lot of default behaviors throughout MoveIt where it makes assumptions for the user when it has not been explicitly defined by the user themselves. For instance, the logic behind choosing a tip frame when not end effector is specified or the logic behind choosing IK solvers for a planning group that consists of other planning groups. This default behavior is somewhat confusing to the uninformed user since it is not well (or at all) documented anywhere. 

The change above removes the assumption that a planning group that has a IK solver defined in ``kinematics.yaml`` should have its solver ignored if the planning group is not a chain. This change is very necessary if we went to support non-chains.

As for forests - that seems really tricky to support and in the general case should be considered as two different robots, right? Or are you referring to a planning group that includes, for example, two arms, but there exists joints between those arms that are not included in the planning group? This seems dangerous if that intermediate joint does not remain fixed.