Не следует ли вызывать метод OnAuthorization только при добавлении атрибута в класс или метод?
Частично да.Но вы должны знать, что ASP.Net MVC имеет понятие глобальных фильтров.Глобальные фильтры используются, когда вам не нужно повторяться (нарушая принцип СУХОЙ).Это помогает вам централизовать и настроить фильтры, которые должны быть выполнены для всех контроллеров.
Эта строка
GlobalFilters.Filters.Add(new CustomAuthorizeAttribute());
добавляет фильтр глобально, так что это нормально, он вызывается, даже если вы нене применяйте атрибут фильтра к вашему классу контроллера или действию.