Eu acho que a resposta curta para sua pergunta é que a razão pela qual você não está vendo muita coisa acontecer como o que você descreve é que o armazenamento local em HTML5 não está de acordo com a tarefa, e até os últimos dois anos faltam apenas algo nos últimos dois anos sendo especificado que forneceria uma solução melhor.
Sobre o armazenamento local HTML5 especificamente: Possui uma condição de corrida e alguns outros problemas que impedem que seja adequado para uso na produção de qualquer aplicativo em que você deseja garantir que não haja corrupção de dados e em que deseja armazenar mais do que apenas strings .
Esses problemas no armazenamento local podem ser corrigidos, mas a realidade é que nenhum dos fornecedores de mecanismo de navegador neste momento tem interesse em afundar mais recursos em suas implementações de armazenamento local. Eles preferem que os desenvolvedores da Web usem alternativas ao armazenamento local.
De qualquer forma, para o caso de uso que você descreve, felizmente existem realmente soluções mais robustas em andamento. O ponto principal daqui para frente será o Service Worker - e, no contexto desta pergunta, o Service Worker Cache e o CacheStorage fazem interface especificamente.
O IndexedDB também é a solução de nível de produção que o tempo de execução da Web agora possui para o caso geral de armazenamento robusto de dados no cliente, com implementações eficientes e com mais controle sobre os tipos de dados armazenados e como eles são armazenados.