Views query alter but Views calc is not rendering right result
I have the same problem (pagers not working for custom queries), and while I am getting close to the solution I do not have it yet. Something that helped me to understand what is happening is a piece of code from OG that generates a table with pagers.

og_ui.admin.inc line 221

query:

  $query = db_select('users', 'u');
  $query-&gt;innerJoin('og_membership', 'ogm', 'u.uid = ogm.etid');
  $query
    -&gt;condition('ogm.gid', $group-&gt;gid, '=')
    -&gt;condition('ogm.entity_type', 'user', '=');


and the important part where the query gets cloned jost for the counter:

  $count_query = clone $query;
  $count_query-&gt;addExpression('COUNT(u.uid)');

  $query = $query-&gt;extend('PagerDefault')-&gt;extend('TableSort');
  $query
    -&gt;fields('u', array('uid', 'name'))
    -&gt;fields('ogm', array('state', 'created'))
    -&gt;limit(25)
    -&gt;orderByHeader($header)
    -&gt;setCountQuery($count_query);
  $result = $query-&gt;execute();


My current solution is 
do not use pagers when you edit view queries, 
if you have to use a pager than create a whole template using the example from OG module (og_ui_menu() in og_ui.module + og_ui.admin.inc).

Hope it helps, but I would still be happy to know how to fix counter in views.