Althought exists a strong reference to an object B, a WeakReference to B into A is not accessible in A finalizer as shown in the sample. The behavior is exactly like the WeakReference has already been garbage collected which is not the case.
That is very restricitve in many cases and also prevent proper WeakEvent clean up without any artifacts (like timer, polling, enumeration, ...).
That bug prevent the separation of different GC root tree classes (throught weak ref). Due this fact, it prevent proper clean up of weak referenced but dependend classes if required.
You can see: http://stackoverflow.com/questions/15093762/c-sharp-loosing-weakreference
See: "Steps to reproduce" for clean code to easily reproduce the bug (into console app).