Memory leak in InstanceObject.GetSubObjects()?

I experience what I suppose is a memory leak in InstanceObject.GetSubObjects().

Below is a minimal example that should show this. If I do manually what I assume is happening more or less under the hood, it does not leak (see second loop).

protected override Result RunCommand(RhinoDoc doc, RunMode mode)
{
    if (RhinoGet.GetOneObject("Get block", true, ObjectType.InstanceReference, out var objRef) != Result.Success ||
        !(objRef.Object() is InstanceObject instanceObject))
    {
        return Result.Failure;
    }

    // This leaks (loop to see the leak clearly)
    for (int i = 0; i < 100; i++)
    {
        var leakingObjects = instanceObject.GetSubObjects();
    }

    // This does not leak
    for (int i = 0; i < 100; i++)
    {
        var nonleakingObjects = instanceObject.InstanceDefinition.GetObjects();
        var transform = instanceObject.InstanceXform;
        foreach (var rhinoObject in nonleakingObjects)
        {
            rhinoObject.Geometry.Transform(transform);
        }
    }

    return Result.Success;
}