Don't remove all packages during system upgrade
When you upgrade PC-BSD, all the installed packages are removed (except the PBI). I know it's recommended to install classical packages inside a jail rather than on the main system. But that's not always possible. For example, I installed the Firefox PBI. Then, I wanted to add localization and the flashplayer plugin, which are both only available through the ports. But, if I install them in a jail, they can't apply to the firefox that is on the main system.
I guess it might be possible to solve this particular firefox issue but the real problem is, I think, the way the upgrading system works.
During the second part of an upgrade, the program checks the system settings to find the list of the packages the user asked for during the initial installation. Why not check this same list during the first part of the upgrade and only remove these same packages, saving the manually installed ones ? I may miss something but it doesn't seem that hard.
By the way, it would save a lot of time if you didn't remove/reinstall all of these packages, but only those that changed in the meantime (a list of which being maintained on your server).
PC-BSD is great but I think the upgrading process is one of the last weaknesses it still has to solve to be on par with the best known OSes. Don't you ?