Okay to run sp_refreshview against all views on a regular basis?
there's potential for the underlying entities they reference to change


This is the problem, and you should solve it at the source. 

If you are updating objects in the database frequently enough that you have to automate frequent metadata corrections, there is probably an opportunity for better processes.

And you shouldn't be updating tables without also updating the views that reference them. So the views should become part of your schema modification workflow.

You can use WITH SCHEMABINDING on the views, which will explicitly enforce  that you can't modify referenced objects without knowingly removing the schema binding. (As an added bonus, your views can't use SELECT *, which is likely part of the problem here).

I wrote about this in the following article:


Benefits of SCHEMABINDING