Missing "view mode" permission in core
The node access control methods between Drupal 7 and Drupal 8 are largely the same and described in Node access rights.  There are still the same hooks, just some of the plumbing is different.

So, if you want to implement the Drupal 6 fine grained access in Drupal 8, you can either do hook_node_access() or proper grants.  Remember, node usage can exist in case other than the node pages (eg, lists); the node access system takes care of this.  Work has begun on the ACL module and dependencies which provide some abstractions for these.

Drupal 8 also has a new concept for route access.  It uses classes that implement AccessInterface, and then use YAML configuration for providing the requirements for the route.  Looking at how routing is set up for the code node module (which defines the Node entity), may be the best starting point for delving into this, though it uses the same Access classes as the node acccess system.  I think explaining it here may be too much.