I’m posting my comment to @MarkKaplun as part of my answer.
My point is this, every end user experience a certain thing in a certain way based on his/her own knowledge, experience, usability and personal preference. There can never be a wrong or right answer here. Option one might suite you best, option two might suite me better. I like the way the OP has set out all pro’s and con’s, and his points are valid. I think we all miss the real question here. What type of market are you targeting here. Will this be distributed to people with a lot of knowledge or novices in WordPress.
To extend my comment into a full answer, I would like to add the following:
-
Whatever option you are going to implement, you should include a well documented step-by-step instructions manual with your theme.
-
Always think like a novice, someone that have no to very little experience with WordPress and php when developing a theme or plugin for public distribution.
-
Choose a target market and develop your theme according to that specific market. Remember, you can never please everybody.
-
On the point of the URL, will you really be using the URL of your archive page somewhere else in your theme
-
Write a custom walker to include archive pages automatically when a new custom post type is created. No need to add links manually
-
Make use of custom widget areas and custom meta boxes to include extra information from the back end. I personally think this is the most dynamic way of doing it
-
Not the best option, but make use of a custom post type to add an additional post area in your archive page. This way, you can make use of the WYSIWYG editor. You can add that content then via a custom query or a custom widget.
I think there are still a lot of point I did not cover, but this is most probably the most important
EDIT 1
Just for extra info on page templates. In stead of creating a page template for every post type, you can use a dynamic page which you can use. Please refer to this post I recently did. It might be a bit overboard, but this template can come in handy