El caso con el que me encontré es el siguiente:
Tenía una lista de SharePoint y el identificador de un elemento de dicha lista. Lo único que quería era encontrar un elemento en concreto mediante este identificador.
Mi código era el siguiente:
oList = oWeb.Lists ("ListaDeSharePoint")
oItem = oList.Items.GetItemById (idElemento)
Bien, descubrí que NUNCA se debe usar esa construcción para acceder al elemento concreto, sinó que se debe implementar de la siguiente forma:
oList = oWeb.Lists ("ListaDeSharePoint")
oItem = oList.GetItemById (idElemento)
Si se utiliza la primera opción, que es la incorrecta, se crea un objeto SPQuery para leer todos los elementos de la lista y luego el GetItemById() ejecuta un bucle, en busca del elemento con el identificador que buscamos.
En cambio, si se ejecuta la segunda opción, recordemos que es la correcta, se crea un objeto SPQuery para leer solamente un objeto cuyo identificador es el que le pasamos.