Could you apply something similar using triggers? One question would be how PG would identify changes to existing rows - using the replication facilities to essentially replicate into the view? This would be quite tricky I reckon. Otherwise a change to the underlying table may not propagate correctly to the MV.
That's not what I had in mind. I only mean when REFRESH MATERIALIZED VIEW is run, it gathers the results of the view in memory, then instead of essentially "wiping and reloading" the table, it would only write the differences. So if 90% of the rows would be the same as before the refresh, we only update 10% of the rows.
This would also mean materialized views could get bloated just like tables.