By the way, it appears that constant _already_ have different binding rules than instance variables. Consider this code:
class foo { constant x=3; int f() { return x; } }
class bar { inherit foo; constant x=7; array(int) g() { return ({ foo::x, bar::x, x, f() }); } }
Here bar()->g() will return ({ 3, 7, 7, 7 }). However, change the "constant" to "int", and you'll instead get ({ 7, 7, 7, 7 }). So a constant is clearly already different in more whats than read- onlyness.