It does sound like a bug, but it is correct, if getters and setters are to mimic the behaviour of variables. If you do the following
class A { int x = 3; }
class B { inherit A;
int x = 4;
int get_a() { return A::x; } }
you will always get 4 back from B's methods.