Почему Вы так думаете? LIMIT - максимальное количество записей, которые должен вернуть запрос, а не обработать.
Ну так пост с ID 5 входит, как в категорию с ID 2, так и в категорию с ID 4, поэтому дублируется.
Вы можете использовать DISTINCT, чтобы убрать дубликаты
А зачем Вам это?
поле cnt