The event bus will hold a strong reference always. The answer to both of your questions is yes.
When you set a
to null
above you are only clearing the local reference. Both Guava and Otto maintain a strong reference and require explicit unregistration. You will see the above behavior in both event buses.
I strongly suggest you tie the registration of an object to something other than the clearing of a local reference. The Android activity and fragment lifecycle is an obvious choice and so are things like close
and destroy
-like methods on individual objects.