Traversing the World
Let's talk some more about servers and regions. The key thing to try and maintain is the illusion of one all-encompassing world. To that effect, there would be two distinct levels of division. One, the three regions. Two, a multitude of towns and cities within each region. Each town or city would be a single server, with a predetermined traffic cap. There would be a certain number of spaces for people who live natively in the town, as well as a certain number of spaces for people who are visiting. Each town would have several surrounding natural areas; you could stick around and do plenty of battling, training, or capturing in the wild.
The crux of this system involves traveling from server to server. The best way to explain is likely a bit of role playing, so let's step into the shoes of one particular trainer. This trainer, let's call him Ash, lives in Pallet town. He owns his own house, which he can customize to his heart's content. He's spent his hard earned cash on furnishings, home expansions, and landscaping. It's a fairly prestigious little hovel. Anyways, Ash can go out into the woods at any time to look for new Pokémon. The woods are sprawling and expansive, several real-world miles in width. He can hop on his bike and trek over to one of the nearby routes, where he'll find plenty of other trainers that live in his town to battle with. He's also likely to run into other trainers from other towns and regions that are visiting.
One day, Ash decides it's time to explore outside of his hometown. He travels to the far edge of town, where there's a bus stop. Let's jump outside of Ash's world for a moment. The bus stop (or boat dock, depending upon the particular location) allows for travel between towns in a single region. In order to get on the bus, you have to buy a ticket. Buses run on schedules, just like in the real world, and ticket sales depend upon availability. If there are open visitor slots in the destination town, the system is very simple. Buy a ticket, your spot is reserved, and you leave on the bus when it arrives. It becomes more complicated when the server is maxed out, however. You can't rightfully take a bus to a town with no open visitor slots, so there won't be tickets currently available for that town. What you can do is put in a ticket reserve. If a visitor from that town decides that they want to leave, you'll have first dibs on the ticket that then becomes available. If you're elsewhere in town when the bus is ready to leave, a message will pop up alerting you and giving you the option of teleporting to the bus station. (Hey, it is still a video game after all.) At that point, it becomes a simple player exchange. As the other person leaves your destination town, you take their place.
So now Ash is in another town. He can climb the nearby mountain to find some trainers to battle or some Pokémon to catch, or he can visit some of the shops around the town. When he gets tired of it, he can hop a bus to another town, or take the bus back home. When going back to his home town, he never has to put in a ticket reserve. He's got a house waiting for him; there will always be an open slot with his name on it. If he's in another town and logs off the system, he'll be sent back to his home town automatically. You can't have people idling on a server and taking up precious slots when they're not playing, after all.
So let's say Ash has explored the crap out of the Kanto region. His sights set high, he decides that he wants to travel to the Hoenn region. That's very far away, though, and not a simple feat. First things first, he has to order plane tickets. He can schedule them for a multitude of times, so he could theoretically try and travel with several friends that all schedule together. There are only a limited number of spaces for travelers from other regions, however, so he may have to wait a good chunk of time before a slot opens up for him.
Let's step out of Ash's world again. Inter-region travel would be very similar to traveling between towns, but travel would be restricted between three hub cities - one in each region. Once you arrive in your destination region, you have to find temporary lodging. This is the true traffic limiter for inter-region travel. If there are no hotel vacancies in a destination city, you can't fly there. You have to buy a reserve ticket and wait for someone to leave, just like bus travel. While towns have two classifications for open slots (visitors and residents), cities would have three classifications (visitors, residents, and visitors from other regions). As such, the servers for the three cities would have to have a significantly higher traffic capacity than those that are used for regular towns. Once you arrive, your hotel room becomes your new temporary home. It functions identically to your house in your hometown, in that you'll be returned there if you log off in another town in the new region, and that you can return to it without having to wait at any time. Hotels require a constant source of funding to maintain, however, so they aren't feasible if you want to stay in a new region for an extended period of time. If you run out of cash, you will be deported back to your home in your native region.
Amazed by the grandeur of this new region, Ash decides that he wants to move there permanently. So while he's visiting, he goes house shopping. There may be some new-builds that he could move into, but he wants a home with some history. As he walks through one of the nearby towns, he sees a "for sale" sign on a charming little house. He inquires within, and has a chat with the owner. It turns out that they're looking to move to Kanto, so the two set up a deal. The new house is upgraded a little more than Ash's old one, so he throws in some extra cash and the two trade homes. A permanent server-switch is performed, and Ash is now a proud resident of the Hoenn region.