Так часто бывает нужно чтобы счётчик, при достижении крайних задаваемых значений, сбрасывался и считал заново, по кругу, короче я в универсальности не вижу ничего хорошего, приведу конкретный пример, создали мы когда-то макрос двустороннего ограничения(LIMIT), вроде всё замечательно было пока не потребовалось одностороннее ограничение и макрос сразу стал плохим(избыточным), пришлось заняться обратным процессом, из двухстороннего - односторонний делать, при создании двустороннего поставил два односторонних и убрал всё лишнее, что в них дублировалось! Это наверно как всесезонная обувь, одежда! Или как самолеты, создали бы один, он вам и штурмовик и бомбардировщик и истребитель, как бы всё замечательно было, а нет, всё по отдельности сделали! Может и могут быть отдельные примеры, но я таких не видел, по-моему не может быть любой элемент оптимальным на все случаи жизни!
А насчёт того, что из базовых элементов сделать что угодно согласен, вот пример: существует функция извлечения какого-то бита, её с избытком заменяет элемент "И":
Извлечение бита.PNG
Извлечение 16 бита, в ОЛ 15, там нумерация с "0"!