These warnings are there to help you find typos in your code; in this case it's an instance variable. When you write @diabled you will see a warning about it not being initialized, which helps you track down weird bugs.
Using the idiom is also not possible for boolean values because @a ||= false will always re-evaluate the right part of the expression. Remember that it's actually:
@a = @a || false
Now @a becomes false. So in the second iteration of this statement you evaluate this
@a = false || false
Now assume that the right side part of the expression takes 20 hours to compute.
Not sure if this is the "bug" you mentioned, but I'd just like to point out this common misconception in Ruby. This:
actually expands to this:
The end result is the same, however.