1) если не пометил ничем, то self будет захвачен и произойдет утечка памяти
2) если пометил unowned, то ARC не увеличит счетчик использования, то есть объект не будет захвачен, но если окажется, что внутри нет объекта, то проищойдет краш
3) если указал weak self, то в self будет optional. Ты его можешь развернуть, и если внутри nil сделать что тебе надо. Да, больше строк кода, но безопаснее.