It would be good to have a way to mark things as "write once, then readonly" IMO. It's very common, and you can do some of the same optimizations on such things that you can do on true Readonly objects.
We used to do this in RTL and it caused all sorts of problems. One is that supposed you have such a variable in a function and then you inline the function into a loop. Now all of a sudden, it's written more than once.