β "Does Spring.Net Useful for Us?"
I think the spirit of your question is really more focused on the question of the benefits of using the IoC / DI infrastructure and manual dependency management as needed. My answer will be more about why and why there is no IoC / DI, and not so much about which specific structure to use.
As Martin Fowler noted at a recent conference, DI allows you to separate configuration from use. For me, thinking about DI in the light of configuration and use as separate issues is a great way to start asking the right questions. Is there a need for your application to have multiple configurations for your dependencies? Does your application require the ability to change configuration behavior? Keep in mind that this means that dependencies are resolved at runtime and usually require an XML configuration file, which is good since changes can be made without having to recompile the assembly. I personally am not a fan of XML-based dependency customization, as they are ultimately consumed as "magic strings." Thus, there is a danger of runtime errors if you end up sealing the class name, etc. But if you need customization on the fly, this is probably the best solution today.
On the other hand, there are DI frames, such as Ninject and StructureMap, which allow you to freely define dependency definitions in your code. You lose the ability to change definitions on the fly, but you get the added benefit of checking compile time, which I prefer. If all you want from the DI framework is to allow dependencies, you can exclude the basics of XML from the equation.
From a Silverlight perspective, DI can be used in a variety of ways. The most obvious is defining the relationship of Views to ViewModels. However, delving deeper, you can define validations and context-dependent RIAs, etc. Having all the dependencies defined in the configuration class, this code does not require knowing how to get / create instances and instead focus on usage. Remember that a container can control the lifetime of each instance of an object based on your configuration. Therefore, if you need to split an instance of a type (e.g. Singleton, ManagedThread, etc.), this is confirmed by the declaration of the scope of each type registered in the container.
I just realized what I was saying now, and I apologize. Hope this helps!