I have created a mesh which have multiple materials applied to it.
When I try to Edit Mode|Select All|Separate by Material, Blender does not separate until all unused material slots are removed.
Why it does not separate until all unused material slots are removed?
Did you accidentally delete the base material? I don’t have a base material on my meshes either for some reason, but the first thing you should of done was assign the entire mesh to the default material first. Then go and change individual faces into the material you want.
sounds like a bug, maybe it misses a check for unassigned / None material slots
you should file a bug report
question is how this should behave: separate by material and put all unassigned geometry into another object?