The nomenclature is not consistent I’m afraid.
In Rhino:
Surface = single face with or without trimming data
Polysurface = two or more joined faces with or without trimming data.
In Rhino SDK:
Surface = single face without trimming data
Brep = one or more faces with or without trimming data
In Grasshopper:
Surface = single face with or without trimming data
Brep = one or more joined faces with or without trimming data.
Basically, what Grasshopper calls a “surface” is just an SDK Brep with a face limitation.