There is no argument to be had about whether ARC is beneficial. The reduction of boiler-plate memory code, is alone, enough to justify its use. The elimination of issues resulting from objects being incorrectly retained or released also saves developers untold hours debugging weird memory management issues.
However much ARC has simplified matters, issues will still arise if memory management is not adequately understood. These issues commonly fall into two categories, retain cycles and accessing released memory.