I run from cvs update and periodically move to a new snapshot.
My current snapshot, however, I built myself by doing a build release and haven't done any more work on OpenBSD itself since I'm busy using it at the moment and not hacking it (up to the good bit - Part VI of O'Reilly's Learning Python - Classes and OOP
OK, here's what you need to be aware of..
it's great practice to back everything up... I use rsync as described on another thread... I tarball up the synchronised directory from my desktop each time I'm going to make a radical change to the Zaurus and have started archiving those tarballs to DVD now.
Updates will work pretty well, they do not import etc.tgz or xetc.tgz so changes made in those 'configuration' tarballs won't trounce anything that you changed in your etc directory... other changes might... nicely things like fstab, your ssh keys and so on will be maintained.
Updates also ask you if you want to automatically use the previous installs network settings... the process seems to be pretty stable..
3.9 now uses /usr/lib/libc.so.39.0 rather than libc.so.38.x as well as libstdc++.so.42.0 rather then libstdc++.so.40.0 - any ports that you built on 3.8 will be linked to the old versions and need to be rebuilt... well any ports that you built will have a lot of changes in other libraries too...(recommendations follow in a min)
if you only ran from packages use the new pkg_add -u option to update the packages... I only use ports because I'm a sucker for a hard life... so if it's a 2 stage process to update the packages your best bet is pkg_add(1) man page.
If you are using ports download and expand ports.tar.gz that matches the snapshot... go into /usr/ports/infrastructure/build and run ./out-of-date - go away and enjoy your evening it takes a while... actually on second thoughts run.... out-of-date and pipe it to a file.. it takes so long you don't want to lose the output. - on third thought's don't spoil the end of the evening by looking at the list, it's likely to be long... have a good nights sleep before doing the next bit
Now, use pkg_delete to remove everything that shows up on out-of-date and rebuild them from ports. - make sure you backup important data. - note if you choose this route and get out of date things like tiff.xx.tgz and you don't remember building them for a specific reason then don't rebuild them they will almost certainly have been brought in as a dependency... just build the top level packages that you want and let that handle the dependencies.
I kind of constantly upgrade, every couple of weeks I will update my ports collection and rebuild... mostly I just update my Kernel if I'm doing some Kernel work since I want to make doubly sure that my patches apply with the latest cvs.
The last snapshot that I built was on March 20th and that seems to be fine.
Oh, btw if you are using my whole disk install mechanism for an SL-C3000 make sure that you update the boot loader stuff as discussed each time you perform an upgrade... there are periodic changes in this code.
As far as performance increase goes I would say not really, the tweaks that I put forward give me a performance boost for what I'm doing... the most important for Zaurus performance is noatime, closely followed by using softdep on the Microdrive... noatime makes a dramatic difference to normal operation, softdep makes a significant improvement to file system write performance and I haven't broken it yet