Alright, I give up... - I just spent an hour or so looking everywhere and asking everyone who might know if they knew a method to do what these pictures illustrate:
Here is a picture of 1 object with 1 limb and 3 materials. All the polygons are part of the same limb but have different materials.
Here is a picture of 1 object with 3 limbs and 3 materials. Each limb has its own material. (The rotation is to show they are now separate and is not a desired effect.)
All I need is a method that can get from the first picture, to the second picture automatically. - Just a quick in and out with a .X importer/exporter or something, or a function in a modeller.
The closest thing I have is the function in Deled 2.43 to select polygons by material:

But this just isn't good enough if I have like 300 different textures and 20,000 polygons. There isn't even a key shortcut for the function so you can imagine just how long it takes to split a map into limbs this way.
---
For those of you who wonder why I need to be able to do this, ask yourself how you would add a shader to a model if it had 2 textures?
Would you just apply the shader to the model and disregard that you have 2 textures underneath it?
What about a map for a level, if could have 50 textures for various vents, gratings, floors, ceilings, doors, windows.
You might want to shader the gratings and vents with bump mapping, the floors, ceilings and doors with a shiny-shader and the windows with a refraction shader.
How would
you do this with 1 model?
Well the only way I see to be able to do it is to split each type of material into a limb and shade those limbs according to the texture.
All the windows will have 1 texture, all the vents and grates will have another, etc. and each polygon with a texture will be added to a limb along with all the other polygons of the same texture, so you have 1 nice, manageable limb with only 1 texture. This limb can then have an individual shader applied to it.
This was done in Soup and took a good half an hour to split a map into these limbs in order to get the correct height/normal maps for the correct textures on the map. -
There is also only 1 map file due to this method.
Someone, surely, among the thousands of people who use this forum must have a solution?