Grant access to all objects (with a few exceptions) to a role
The sad truth is that you cannot do anything computerwise about the 'sa' activities.  This is because the 'sa' (or a member of the sysadmin server role) are defined to be able to do pretty much anything.

So, of course, you should only have  sysadmin's that you can trust to do their best to adhere to the standards for the database.  But even the best sysadmin is imperfect.  So you might set up some auditing to report on changes made in the database.  

(Or, more low tech, periodically check your views for a restricted table name in a view.)

So it depends on what you are concerned about and how much effort you need to put into protecting the secure resources.

In terms of views that expose secure information, you can DENY permissions on a view.  Even if a sysadmin created the view, the DENY of the view for those without approval will prevent their access.

Perhaps any high security views could be named something like SecureViewXYZZY so as to emphasize the reason for those views and the restriction of who can use them.