This in my opinion is a bad bug. I had blogged about this earlier today, but Here is another scenario where this is clearly an issue.
Say your deployment pushes parts of your app as small dlls - this is quite common as a matter of fact for partial production pushes in small companies with a small fixed number of customers to support. You rely on the fact that if the signature of the dll doesn't change, you can push a patch without changing it's callees (assembly shouldn't be strongly named for this to work). By doing so, you can push out obsolete code, and the old parts of the application *still* continue to use the obsolete code - which IMO is ultra bad. Such kind of scenarios get tough to control & track in large deployments.
In short, the framework itself, simply ignores the ObsoleteAttribute - which in my opinion is incorrect and easily fixable.
The bug is reported right here. If you agree with my views, please do vote on it.