Во-первых я бы скорость кадров увеличил, а то 12 в секунуд - это издевательство над бедным игроком, по-моему.
Проблема у тебя не в том, как подходит чувак к стенке, а в том, c какого расстояния он делает последний шаг к ней. Если расстояние >=13 или 14 где-то, то все ок, игрок отбрасывается назад. Если меньше, то он попадает уже в саму стенку, и при проверке через getBounds возвращается уже другая граница стены (не сверху т.е. он уже соприкасается, а снизу). Откидывание и идет в противоположную сторону - вниз, и игрок проскакивает через стену. Угол тоже играет роль, но это таже история - шаг под углом - по диагонали например, иногда позволяет игроку точно войти в стену и прлететь через нее.
Решается трабла по-разному.
1) увеличь толщину стенки
2) чаще проверяй на совпадение (используй тогда уж интервалы)
3)уменьши скорость передвижения и отброса назад юнита - я один пиксел поставил, так ничего не проскакивало )
4) использовать свое выявление совпадений, вроде ручного определения границ объекта и координатов игрока.
5)сделать юнита не таким корявым. Круглым или какой-нибудь симметричной формы по возможности. А то лишние отростки

при повороте вплотную к стенке мешаются
Вот такие пироги. И вообще при выявлении совпадений через getBounds желательно, чтобы одна цель (юнит в данном случае) была значительно меньше другой.
Если кто-нибудь знает, как при стенке толщиной в 2 пикселя и большом юните с быстрой скоростью передвижения (по 20 пикселов в кадр)при OnEnterFrame выявить точно совпадение - буду рад услышать. Я тоже такие траблы решал, но чтоб все было гладко и без единой задоринки ("под общий случай"

) - такого не было.
А чтоб обходил препятствия... Используй двумерный массив в качестве разметки игрового поля, с маленькими (ну или не малнькими, сам гляди) ячейками. Каждая ячейка будет содержать в себе три поля - свои координаты и занятость (пустая/непустая). Плавное перемещение по ним организовать просто, ну а AI в этом случае тоже достаточно прост. Смотри мой исходник в "Проекте конкурса" здесь же, в AS. Там не плавное перемещение, но сетка есть и код весь тоже. (совет: если делаешь RPG, может, модули будешь использовать (*.as), а то места под код не хватит )))))
Как долго объяснял

Я аж вспотел

Извините за засорение свободного места