It's not a bug, if you consider that you CANNOT use the unit type as an index to the collection. If you want to look for a specific UnitOfMeasure object, you will need to iterate through all of them and check for the correct type.
You can verify this by simply running the following code, which shows differences between the index and the unit type for all units, except igUnitDistance and igUnitAngle!!
Dim i As Integer = 1
For Each objUOM In objDoc.UnitsOfMeasure
Diagnostics.Debug.WriteLine("UOM(" & i.ToString() & ") = " & objUOM.Type.ToString() & " (" & CInt(objUOM.Type).ToString() & ")")
i += 1