Мой личный фаворит - метод SPField.GetFieldValue . Я понятия не имею, почему они разработали это так, как они, но для меня это вряд ли имеет смысл. Чтобы получить объект из ListItem, вы должны сделать что-то вроде:
SPField field = ((SPList)list).Fields.GetField("FieldName");
object fieldValue = field.GetFieldValue(((SPListItem)item)[field.Title].ToString());
Вывод объекта из ListItem является IMO базовой операцией, поэтому это не должно быть таким сложным.