I update indexes manually from RM every 30 minutes or so, as well as automatically (REINDEX) after each query using UPDATE or DELETE FROM. The process takes seconds as with cleaning phantoms or testing integrity. For some reason compact database often fails (error message, does not start but the window does not leave)because of some other SQL running (which I do not see) and in such case, creating backup when closing does not work. Closing and opening RM solves the issue.
I would indeed not use name.birthyear to overwrite living=1 to 0 but extract the year from the Eventtable.
I never had any issue with the Birthyear though but I read this 'refresh' issue somewhere.
I think mine is quite reliable (never spotted any error): I imported a few thousands records from Myheritage, I therefore had only unsourced records with many mistakes, duplicates and so on. After using intern tools of RM to clean the database (merge duplicates, data clean,...) I used SQL to put 'about' (abt) in front of all the dates (and an * in the suffix of each person -> I like it because I see it in left pane and does not impact matching help) -> very quick way to see what need to be confirmed and make groups with SQL). The abt is taken out after each fact verification, the * after relationships are confirmed by a reliable source (-> if today I found an ancestor on Ancestry from a shared tree, I would enter the person with * and abt, if it is from a database record such as birth certificate, no abt and no *). 90% of the input are without the official birthyear (parents of new husband) at first, not on wedding records, but I put an est date anyway (20 to 30 years less than new husband, round up or down). All the people who had no birthday were given an estimated (est) date, so all records have a birthyear (I know if I see abt that it came from an online tree, est that it could +- 30 years and a normal date is "proved and official") -> I have no 'hole' in the year of the left pane, it is for me the quickest way to know if I should create a person or use an existing one with the same name (Joannes and Maria are given names at least once in each family ID of a branch for decades, and they had about 10 kids each). If I change the birthdate of someone (I always do it manually) and sourced, the birthyear seems to update accordingly very fine so far.