If you are creating online help, and will be reusing Flare templates across multiple projects, I would recommend "Don't Preserve FM styles", and define and link to your own stylesheet (and map those styles manually). The main reason: it gives you much more control and consistency each time you import. The opposite approach (preserving FrameMaker styles and/or having Flare create a stylesheet for you) might be a good option if you are importing purely for a one-off print output and don't care so much about ongoing maintenance (it may appear similar to what is shown in Frame, but it is also likely to produce a long list of styles with unpredictable names and css properties).
When mapping, definitely use H1, H2, H3 etc (this means the correct text will be displayed for mini-TOCs, breadcrumbs etc if you decide to use those down the track). I also found it useful to create a p.display_none style (which had the Display:None CSS property) so I could choose to hide certain styles if needed.
Some of your questions:
If you reference an existing stylesheet, what effect does that have/not have on the FM and Flare tags presented in the mapping dialog?
Your FrameMaker styles appear with your linked stylesheet styles, and you can map the two.
What if there are styles in your imported FM files that are not specified in the referenced stylesheet; are the styles from both merged in the list presented in the mapping dialog?
You have the option of mapping to Flare styles like H1.(FrameMaker Style), p.(FrameMaker Style). That will append the FrameMaker style name to H1. or p. (e.g. if you have a style such as "Bulleted" in Frame and you map to p.(FrameMaker) Style it will map to p.Bulleted even if that doesn't exist in your stylesheet). You can then go into your stylesheet after the import and create an entry for p.Bulleted. Personally I wouldn't do it that way, if I found a style that needed to be mapped and wasn't in the linked stylesheet yet, I would back out of the import, edit the stylesheet and import again.
If you reference an existing stylesheet, then make changes to tag attributes, under what conditions are those changes written or NOT written to the referenced stylesheet (or to a stylesheet somewhere else)
You can reference a stylesheet already in your \Content\Resources\Stylesheets folder (we do this, as the css is already there from a project template), or you can reference a stylesheet somewhere else (e.g. a network location). If you do that, then it will make a copy of the stylesheet in your \Content\Resources\Stylesheets folder. In either case, if you change tags after the import then you are making changes to a local stylesheet specific to the current project (not a referenced stylesheet somewhere else).
Hope this helps
Cheers
Greg