Ok, so the idea I have is that instead of having one server run both minecraft worlds, we have two servers. By two servers I mean two consoles on the server box, and each one would run one of the two opticraft worlds. Each server would be connected to the exact same database so all statistics would transfer over. Meanwhile, warps across worlds would automatically connect the player to the proper server (I think this might be possible with the right plugins). Because of that it would be just like switching worlds on the one server, but with the part where the user is transferring from server 1 to server 2.
Meanwhile if a player connects to one of the two servers, but the players position is not on that map, a plugin could also perhaps automatically send the player to the right server. So if someone who logged off in world 2 connected to server 1 (world 1), they would automatically be redirected to server 2 (world 2) where they are then placed in the correct location that they logged off at.
So here's the layout I have in mind:
smp.opticraft.net redirects to smp1.opticraft.net
Server 1: smp1.opticraft.net (hosts guest world)
Server 2: smp2.opticraft.net (hosts member world)
Pros: Depending on how many players in guest/member world this can divide the total load of the game between 2 cpu cores instead of having one core do all the work
The above reason (dividing the workload of the server onto multiple cores) would reduce lag even if there's a minecraft update, and the bukkit server code is shit and not yet optimized.
Cons: About 2gB more memory usage I would predict since memberworld would be on its own instance of SMP.
Higher network traffic from the players switching between worlds and having to connect/reconnect