Usually when you run multiple threads, the application will create some threads and the operating system will divide the over the cores that you have. With the Cell processor, these SPE’s have a number of limitations that make it impossible to run the same code as the main processor.
For example, each SPE only have immediate access to 256kb (not mb!) of memory for storing both the code to execute and the data to work with, anything beyond that has to be specifically requested, and preferably in advance if you don’t want to suffer too much performance loss. The Blender executable and typical scenes take up much more. To make that work changes need to be made (request memory as needed, splitting up the code, …), and Blender’s render engine is not a small piece of code.
Some changes (or optimizations) cannot be done by a compiler, but require a human to put in a significant amount of work. So until someone volunteers to do this, these SPE’s will go unused.