Por que você está indexando suas visualizações? Você mencionou "desperdício de espaço" em sua solução 2, mas você sabia que quando indexa sua visão, você a persiste no banco de dados?
Em outras palavras, você faz uma cópia dos dados que a view retornaria no banco de dados e toda vez que os dados são atualizados nas tabelas de origem, algum mecanismo interno do SQL Server tem que atualizá-lo nessa nova estrutura de dados criada porque agora o SQL server lê da visão, não mais das tabelas.
Se você usar o Profiler + DTA ou mesmo DMVS você pode criar os índices corretos a serem criados em suas tabelas que qualquer visualização se beneficiaria