есть ли в таком случае какой-то способ защититься от ошибок подобных DAO? возможно есть какие-то готовые решения?
Можно использовать инструменты поиска уязвимостей, можно заказывать аудит, ну и использовать подготовленный код, как по ссылке от zeppelin.
По поводу аудита и инструмента - тут уже писали про наше решение:)