Great article, thanks for sharing.
While reading I didn’t even think of procrastination. What if I work on a big (like 3month) project which is due on 31.12? I most likely will not file the invoce before I actually delivered the product, but it should still count to that year for tax reports.
From a software developer point of view: Why didn’t you decide to make the date uneditable the moment tax reports were filed (and for mistakes give the owner an “I know the risks”-way to unflag invoices as reported)? This is easy to implement and should be sufficient to inform/avoid double claims.