Геттеры/ Сеттеры очень хорошая вещь:
1: в сеттере можно вставить проверку валидности данных

Код AS3:
public function set a(value:int):void
{
if(value<100)_a = value;
else throw(new Error("Invalid value on "+this.className+".a"));
}
2: в сеттере можно можно диспатчить событие об изменении (например, для MVC)

Код AS3:
public function set a(value:int):void
{
_a = value;
dispatchEvent(new ChangeModelEvent("a"));
}
3: в геттере/сеттере можно инициировать создание объекта если он еще не создан.

Код AS3:
public function get a():Object
{
if (!_a) _a=new Object();
return _a;
}
4: можно создать только геттер - тогда свойство будет "только для чтения" ( правда это не работает со сложными типами, т.к. для изменений свойств объекта достаточно ссылки на объект)
5: сеттеры позволяют выполнить некую операцию, например: при изменении width на самом деле изменяем масштабирование по scaleX
6: в геттере можно возвращать вычисляемое значение:

Код AS3:
function get square():int
{
return _width*_height;
}
7: в геттере/ сеттере можно переопределить свойства вложенного в Композицию или в Декоратор объекта

Код AS3:
function get length():int
{
return _innerArray.length;
}
Я настолько к ним привык, что практически все свойства у меня задаются через сеттеры/геттеры