Теоремы тут ни при чем, это слово из математической терминологии просто синоним слова "абстракция", а без абстракции в программировании, строго говоря, не написать даже Hello World, а есть и случаи где действительно существует проблема, для которой нет готового решения и которую нельзя решить "тотальным" анализом поскольку это займет много времени и денег, в таком случае программисту приходится регулировать свой зачастую основной тип мышления - анализ - и применять абстракцию исследуя проблему на таком уровне, на каком стоит.
или привести короткий пример практического применения теории категорий?
Ну например реализация надежного канала связи на TCP, чтобы "раскопать" всю реализацию протокола нужны месяцы и много денег, не считая ума которого тоже многим не хватает, поэтому применяется абстракция, вот и пример, но что вам это даст, если у вас нет своих нормальных задач (а судя по вопросу их у вас не бывает в принципе) то вы же не пойдете взамен реализовывать пример моей задачи.