Getters and setters still have some semantic issues, I think; see e.g. 16636404. But given that they are sorted out I'm all for that
constant x = 17;
would become semantically equivalent to
int `x() {return 17;}
provided that the binding semantics don't change.
In the case of variables, we conceptually get default getters and setters for non-private variables unless they are overridden.
That's not quite true when it comes to overloading. If only the conceptual default getters and setters would be overridden for variables then they wouldn't share storage.
That sounds like an implementation detail that could be handled by the optimizer.
Well, it better be sorted out first. There's currently quite a difference in direct access vs going through getters, so I suspect it'll require some doing to get the optimizer to cover that. Until then the performance considerations remain.