I just tried achieving this by pointing the /var symlink to a var folder located on an external hard drive (which auto-mounts at boot).
This bricked my router. It seems that boot and other init scripts make use of /var before fstab is executed.
To change this behavior, I tried modifying the order of the init scripts, making fstab execute immediately after boot. In rc.d/
...
S00sysfixtime
S05boot #needs /var
S06fstab
S10system
S11sysctl
S12log #needs /var
...
(I also tried moving fstab right after system and right after sysctl).
In the boot script, I commented out all commands involving /var:
...
#mkdir -p /var/run
#mkdir -p /var/log
#mkdir -p /var/lock
#mkdir -p /var/state
#mkdir -p /var/tmp
mkdir -p /tmp/.uci
chmod 0700 /tmp/.uci
#touch /var/log/wtmp
#touch /var/log/lastlog
touch /tmp/resolv.conf.auto
...
and I copied them (uncommented) to the fstab script, after the /sbin/block mount command.
The router won't boot with this configuration. What am I missing? Are there scripts that must be executed before fstab? Are there other/better ways to use a persistent external /var folder?