Absolutely. Everything in all of /var except for the symlinks to /tmp persists across reboots. Those symlinks are actually there to prevent just those folders from persisting, since I've found that inhibits proper booting. Nothing else is really required. You actually don't need to create /var/cache and move opkg stuff there like I do. The system would create /var/opkg-lists just fine. I just do that because every time I see application cache data not going into /var/cache it makes my FSH OCD itch.
So, yes, after creating the new /var from my skel, my /var keeps going persistently and everything is intelligent enough to just make the directories they need. This is what my /var looks like right now:
drwxr-xr-x 4 root root 3488 Feb 28 14:58 cache
drwxr-xr-x 3 root root 3488 Mar 3 11:48 etc
drwxr-xr-x 3 root root 3488 Feb 28 15:08 lib
lrwxrwxrwx 1 root root 9 Feb 28 14:58 lock -> /tmp/lock
drwxr-xr-x 3 root root 3488 Feb 28 14:57 log
lrwxrwxrwx 1 root root 8 Feb 28 14:58 run -> /tmp/run
lrwxrwxrwx 1 root root 10 Feb 28 14:58 state -> /tmp/state
drwxr-xr-x 2 root root 3488 Mar 8 13:45 tmp
The only issue with upgrading that I found when I used it, is that on upgrade you have to re-do the extroot. What I did (and still do even for my devices that don't need extroot) is put /root into a separate partition on the same USB stick. This way on upgrade, early in the configuration process, I link in my saved /root, and have access to all my personal stuff, things I really want saved, scripts, custom binaries, devel, etc. I used to do a lot of upgrades and changes as I made custom builds, still do, so I create a script with every command needed to bring a new upgrade up to my base functionality.
I don't know how much you need for packages. Everything persistent in my /var is ~5MiB, which includes 1MiB for syslog, 800KiB for opkg, and ~3MiB for /var/cache/rrd, where I store luci_statistics info (as an aside, I ended up recently making /var/cache/rrd point to my /root/admin/rrd to make my luci_statistics graphs survive upgrades). Even if you left rrd where it was, you can get away with it in your space.
The reason NOT to, though, is that making /var persistent without extroot and putting log and RRD and potentially other oft-written data there will increase the number of writes to your flash. It's actually for that reason that I went with extroot, so I would put the wear on a device I could exchange, and not the internal flash, which is critical.
My advice is to use extroot. The downsides of using it can be mitigated, and the upsides are myriad.