The information located at http://msdn.microsoft.com/en-us/library/sb6a8618(VS.100).aspx is incorrect: "The default resource is the only resource that is compiled with the main assembly. Unless you specify a satellite assembly using the NeutralResourcesLanguageAttribute, it is the ultimate fallback (final parent)." In .NET 4.0 the default has changed to the satellite assembly.
The behaviour in .NET 4.0 regarding the AssemblyResolve event is different than the behaviour implemented in .NET 3.5, causing existing .NET 3.5 applications to break. In .NET 4.0 the AssemblyResolve event is raised for both missing assemblies and for missing resources. In .NET 3.5, AssemblyResolve is only raised when an assembly is missing. When a satellite resource is missing, a MissingSatelliteAssemblyException is thrown (causing the application to crash or for the DispatcherUnhandledException event to be raise), and AssemblyResolve is never called. This should be the same behaviour for .NET 4.0.