I don't use 3D sketches very often, and don't create them entirely by code at all, so some of this behavior is new to me also.
As a local test, I created a new part document, created a new 3D sketch in it, and created 4 sketch Points in it. Then exited that sketch, and created 4 WorkPoints at those 4 sketch points. Then turned visibility of first 3D sketch off. Then created new 3D sketch, and created a total of 3 lines in it, each connecting between 2 of the WorkPoints. Then I created 2 internal iLogic rules. One for 'inspection' purposes, which iterates through all geometric constraints in that last 3D sketch, and reports all the accessible details of those constraints (constraint TypeName & Deletable status, and when coincident, the TypeName of (ConnectedEntity, EntityOne, & EntityTwo). Other rule targets one line, and one of its coincident constraints, and uses disconnect method on the WorkPoint. Disconnecting it did not delete the constraint, even though the UNDO list says that's what happened, and did not cause any issues/errors/problems, as if nothing happened. Actually deleting one of the WorkPoints from the model browser tree does cause the issue/problem, so I did that, then 'inspected' the sketch again. Two of the coincident constraints now do not have a 'ConnectedEntity', but they both still exist (same overall # of constraints), and both the EntityOne & EntityTwo both have same values (a SketchPoint3D & SketchLine3D). For each WorkPoint that has two line end points connected to it, there are two coincident constraints, and only one coincident constraint for the WorkPoint at each end (6 total).
All those SketchPoint3D objects got created automatically by simply manually drawing those 3 lines between those 4 WorkPoints. But the only constraints that were created are 6 coincident constraints that are all between those SketchPoint3D objects and the SketchLine3D objects, instead of directly between the WorkPoint objects and the SketchLine3D objects. Since we can do this with, or without the WorkPoints, and we can also 'Disconnect' the WorkPoint from the Constraints by code, and they still seem OK, then there must be some sort of hidden constraint or association between the WorkPoint and the SketchPoint3D objects that got automatically created, since deleting the WorkPoint, without 'Disconnecting' them, causes issues/problems.
The SketchLine3D object, and the SketchPoint3D object both have a ConstraintStatus property which has a ConstraintStatusEnum type value, but that does not seem very relevant in this case, because it does not seem to contain a 'status' for something like 'broken/sick/driver lost'. Since we can create both of those types of objects by specifying 'transient' mathematical inputs for their locations, instead of 'real / tangible' geometry objects (SketchPoints3D.Add & SketchLines3D.AddByTwoPoints), then it does not seem logical that they would be 'dependent' on any 'real' geometry objects. I did notice that the SketchPoint3D object has the AttachedEntities propety, and the ConnectTo method, but it also has MoveBy method and MoveTo methods, which again only ask for transient mathematical inputs (but to warn about existing constraints preventing expected movement too). A lot to think about.
Edit: Below is the 'inspection' code I created, just for reference & further research efforts.
Dim oInvApp As Inventor.Application = ThisApplication
Dim oActiveObj = oInvApp.ActiveEditObject
Dim oSketch3D As Sketch3D = Nothing
If TypeOf oActiveObj Is Sketch3D Then
oSketch3D = oActiveObj
Else
Try
oSketch3D = oInvApp.CommandManager.Pick(SelectionFilterEnum.kSketch3DObjectFilter, "Select 3D Sketch To Inspect.")
Catch oEx As Exception
MsgBox(oEx.ToString)
Return
End Try
End If
If oSketch3D Is Nothing Then Return
Dim oGeomConsts As GeometricConstraints3D = oSketch3D.GeometricConstraints3D
If oGeomConsts.Count = 0 Then Return
Dim oReport As New System.Text.StringBuilder()
oReport.AppendLine("Sketch3D GeometricConstraints3D Report:")
oReport.AppendLine("GeometricConstraints3D.Count = " & oGeomConsts.Count)
For i As Integer = 1 To oGeomConsts.Count
Dim oGeoCon As GeometricConstraint3D = oGeomConsts.Item(i)
oReport.AppendLine()
oReport.AppendLine("TypeName = " & TypeName(oGeoCon))
oReport.AppendLine("Deletable = " & oGeoCon.Deletable)
If TypeOf oGeoCon Is CoincidentConstraint3D Then
Dim oCoinCon As CoincidentConstraint3D = oGeoCon
oReport.AppendLine("ConnectedEntity TypeName = " & TypeName(oCoinCon.ConnectedEntity))
oReport.AppendLine("EntityOne TypeName = " & TypeName(oCoinCon.EntityOne))
oReport.AppendLine("EntityTwo TypeName = " & TypeName(oCoinCon.EntityTwo))
End If
Next
Logger.Info(vbCrLf & oReport.ToString)
Wesley Crihfield

(Not an Autodesk Employee)