Thanks for the response @LinnZawWin and @Amik before.
Let me elaborate a little @LinnZawWin. I put it across as a generic example previously but let me explain it closer to the actual situation.
We have a list of shops that are going through the various stages from initial agreement to being opened (Initial Agreement, Legal, Setup, Open). We want to give access to the information (currently via a Model Driven App) about the shops to the various people involved (project managers, area managers etc). However, consider we have a list (view) of shops, the current 'real life' requirement is for only a small select number of people (who also have write access to the records) to be able to see any details of shops that have a status of 'Initial Agreement'. No-one else should be able to see shops/records until they are set to at least 'Legal'. Hence the need to somehow filter/hide records.
I've implemented security roles, so I've put that small group of people in their own role, if we can do anything that way. The hiding a view was just an idea, but as you've pointed out, if they can still find the records via a search, then that idea is pointless.
In terms of the separate app, I did think about that, when I woke up in the middle of the night the other day! However, aren't the views tied directly to a table and therefore always present whatever app/solution you put it in? Can you turn off a view in one app but have it on in another for the same table?