You're right saying that it's the proper behavior for such a semantic. But the problem is, @@ notation can make you forget you're not manipulating something that might be shared and re-assigning an ancestor class variable accidentally, messing up its behavior. And while it's common to check for method overrides, class variable overrides is not something that is checked very frequently.
It is the kind of bug that can be very long to figure out, since when you make this mistake, it's very likely because you forgot to think about this behavior.