SObject is a proxy of the C SObject structure, and is not directly used. It can represent any C Speect type object that has inherited from SObject (see Generic Object System). It can therefore be used by plug-ins to return objects, for which no Python wrapper classes exists, which can then be used by other functions or plug-ins. For example SList.value_get() returns an SObject if no wrapper exists, although this object can be used by other functions.