[RhinoCommon] Is this a bug - it is confusing at the very least

This command selects surfaces and meshes. Then, when counting by the ObjectType that was used in the selection, the surfaces are not found. In fact they are of ObjectType.Brep even though they have been selected with ObjectType.Surface.

This catches me out every time.

public override Result RunActualCommand(RhinoDoc doc, RunMode mode)
    ObjRef[] oRefs;
    Result res = RhinoGet.GetMultipleObjects("Select meshes or surfaces", false, 
        ObjectType.Surface | ObjectType.Mesh, out oRefs);
    if (res != Result.Success)
        return res;

    Guid[] meshes = oRefs.Select(r => r.Object())
        .Where(o => o.ObjectType == ObjectType.Mesh)
        .Select(o => o.Id).ToArray();
    RhinoApp.WriteLine("{0} meshes selected.", meshes.Length);

    Guid[] surfaces = oRefs.Select(r => r.Object())
        .Where(o => o.ObjectType == ObjectType.Surface)
        .Select(o => o.Id).ToArray();
    RhinoApp.WriteLine("{0} surfaces selected.", surfaces.Length);
    return Result.Success;

You might throw this in a confusing pile. Rhino does not have a runtime Surface object, it has a Brep object. The ObjectType.Surface filter selects Brep objects that have a single face (what end-users would call Surface, as opposed to a PolySurface). Thus, the object type will always report as a Brep, cause it is…