Они оба не могут быть TRUE в данном контексте... Условие можно немного упростить, слишком много скобок, они тут лишние. Ну и само собой да, лучше использовать else if, например так:

Код AS3:
if ((e.localX >= 0) && (e.localX < 50) && (e.localY >= 0) && (e.localY < 50)) {
_selection.x = 0;
_selection.y = 0;
} else if ((e.localX >= 0) && (e.localX < 50) && (e.localY >= 50) && (e.localY < 100)) {
_selection.x = 0;
_selection.y = 50;
}
А вот почему срабатывают оба условия - не понятно, по идее не должны - одно из них все-равно будет ложным.