Model.search(cond)がincludesを使用している場合に、Railsが変な判断をして単にcountしようとした場合に、COUNT(*) -> COUNT(DISTINCT models.id)に書き換える動作をするっぽい(正確にはincludesがあった場合にdistinctされて(ActiveRecord::Calculationsのcalculate)、distinctな場合にCOUNT(*)->COUNT(DISTINCT PK)に書き換えられてる(ActiveRecord::Calculationsのperform_calculation))
count('/* DISTINCT */ *') とすることによってRailsに対してこれは既にDISTINCTされていると偽装する黒魔術