Перехватывать: на границах (горутина, HTTP-handler), когда нужно логировать и возвращать ошибку клиенту. Не перехватывать: в библиотеках (пусть вызывающий решает), при невосстановимых ошибках (out of memory и т.п.). panic часто означает ошибку программиста.