Eu posso ver a beleza nesta solução, no entanto, acredito que funcione apenas para um conjunto muito específico de aplicativos. Cenários em que não é aplicável incluem:
-
Bancos de dados que utilizam exclusões/atualizações em cascata ou qualquer tipo de gatilho. Por exemplo, seu DELETE para a tabela A pode causar um DELETE da tabela B. A regex nunca pegará isso.
-
Acessar o banco de dados a partir de pontos que não passam pelo seu esquema de invalidação de cache, ex. scripts crontab etc. Se você decidir implementar a replicação entre máquinas (introduzir escravos somente leitura), isso também pode perturbar o cache (porque ele não passa por invalidação de cache etc.)
Mesmo que esses cenários não sejam realistas para o seu caso, ele ainda responde à pergunta de por que os frameworks não implementam esse tipo de cache.
Sobre se vale a pena perseguir, tudo depende da sua aplicação. Talvez você se importe em fornecer mais informações?