Recommended taxonomy/structure for destinations site I am building a site with the primary goal of capturing detailed information about different destinations around the world. What is the recommended site structure for something like this using drupal 7?

So far I envision: my nodes would be a custom location type with the location's details expanded out using fields. I would then replicate the location hierarchy into a hierarchical vocabulary (Continent > Country > City, etc.) so users could search for a specific location. Should the hierarchy be flat (one vocab for Countries, another for Cities, etc.)?
Think of Drupal as an interface to a database (it is one) and vocabularies, when used as the basis for fields associated with your content items, as a means for filtering for values in a table.  If the terms in a hierarchy would have 1-to-many or many-to-many relationships, then you will want to have separate tables and therefore separate vocabularies so that you can use relationships to make selections.  In your case, the relationship between continent-county-city is one-to-one (with occasional duplicates such as two cities with the same name) so a single vocabulary, using a hierarchy, makes more sense.

The Views module is basically a UI for queries to the database, so you will use Views to make selections from your table, and menus can be structured as hierarchies to present selections to users using the same multi-level logic of your location vocabulary. You may choose to create content by defining a new content type article that has a field attached to it associated with the location vocabulary and perhaps a second vocabulary to identify the type of information it contains.  This second vocabulary would have terms such as geography, government, cuisine, hotels, restaurants, etc.  When creating an article about hotels in Paris, you would label the two fields from the vocabularies so that the articles can be filtered accordingly.  This is, in simple terms, how Drupal assembles sites.