I refresh this old topic, this is still something we can’t do in rhino 6.
We typically have curved glass objects, which are partly smooth (specular glass), and partly grinded (diffuse glass). To apply two different materials, we need to explode the closed polysurface into two polysurfaces. And then, rendering show gaps between the two surfaces as the tesselation is no longer connected. This is especially a problem with ray-tracer as the gaps will appear black.
The solution from pascal is not working, you can’t explode a mesh where all faces are connected. You only can explode a mesh when it is made of disjoint meshes. The only solution is to extract mesh faces by selecting them, which is a nightmare when the shape is complex. And even if there was a simple solution with meshes, then you can’t edit the object shape with nurbs anymore. Any shape change requires redoing the whole step.
So yes, the ability to set different materials on a polysurface sub elements would be a must. Or, if it is too complicated to implement (as objects can only have 1 material), the possibility to define material IDs (integers) for each sub element would allow other renderers to use it as it is done in 3dsmax for instance.