I think the reason why we can't update a materialized view directly is because it is basically a "view" and it should not contains any data irrelevant to its definition and underlying tables. If we would have a feature to update a materialized view direcly, maybe, it should behave as updatable-view as well as normal (virtual) views, although I am not sure....
Well, I didn´t find any place where is detailed why those tables are not updatable.
And would be fine to be updated through triggers or cron jobs until IVM is available.
CheckValidRowMarkRel just gives an exception "cannot lock rows in materialized view ...", but why ?
What are the differences between Materialized Views and tables ?