Why implementation of node access for different content type breaks my other type access control?
While browsing through the Drupal docs about hook_node_access_records, I stumbled upon this comment:


  Note that (as of 7.35) if your module and every other module in your
  installation implementing this hook return empty arrays, Drupal will
  automatically insert a record into the node_access table for the given
  node with GID 0, grant_view set to 1, and grand_update and
  grant_delete set to 0.


You can find it here (last comment).