I don't have a comprehensive answer, but hopefully a response will bump this up and others might chime in.
I think you'll find option #1 is the best approach. I've typically found it best to model data using facts and dimensions that are at natural grains and don't mix the grains within a single table. Tableau will work well with a flattened view of the data (though if you have high volumes of data, definitely use a good star-schemas with very little or no snowflaking for performance).
Option 2 is definitely possible, but you might have some performance issues as Tableau is very good at optimizing queries when it understands the tables and joins in play. A single view can obscure that and prevent optimal queries.
Option 3 would likely work at first, but you'll probably find yourself limited later on.