Вы не правильно поняли. То, что нужно учитывать товары в "детских" категориях - конечно, логично. Но например в категории А есть один товар, в её подкатегориях B и C тоже по одному товару. Т.е. физически товара 3 (учитывая детские категории), но если для товаров подкатегорий B и С включит показ в категории А, то в категории А движок начитает 5 товаров, при том что товара всего 3. Вы можете сами проверить.
Понимаю, что предлагаемый метод будет немного мене производительным, но потеря производительности будет мизерная, а тот метод посчета который есть сейчас граничит с некорректностью.
Я не слишком опытен, поэтому изначально подумал, что это особенность сборки - в результате оптимизации алгоритма подсчета. Ковырнул оригинальный ОС - там все также считает.
В, принципе, пользователями это расценивается как баг - счетчик показывает 5 товаров, а реально в сетке 3 товара, потому что их действительно 3.