I don't see any reason whatsoever why the root file system can not be read-only (and I believe it should be). Besides preserving the flash, it also protects the data from accidental damage by buggy software or, more likely, by a user's mistake, such as "sudo rm -rf /"
. I've been using this for many years on my home router.
The recipe is quite simple: mount tmpfs on /tmp and unionfs (or aufs, if you prefer) on /var. The unionfs/aufs mount should contain two branches: read-only - the original /var, and writable - another tmpfs mount somewhere (I use /mnt/var for that purpose). Using unionfs/aufs relieves you from the burden of creating all necessary files and directories in /var upon each boot.