The reason I chose to recalculate the public key rather than just store and encrypted version of it is mostly simplicity. But also, it would mean storing a second copy of it unnecessarily. The only reason we're storing public keys at all is to send them to peers.

Things have definitely changed in SJCL since the version we have included, and it won't be a drop-in upgrade if we decide to do that. I created an issue for this a couple of days ago https://github.com/SpiderOak/crypton/issues/263