Yes, it sounds like you’ve got a good understanding of how this should work, though there are some specific details that aren’t quite right:
I may not quite follow what you are getting at here, though I suppose if you were thinking that the use of “Heading 1” named styled in the editor would be meaningless, I could see how it would be confusing. The rule of thumb is simple though, the naming scheme is adhered to for generating the document outline, no matter where the style is coming from. This allows for one to blend methods if they wish to. E.g. they may not wish to break up a document down to four levels of hierarchy, as subsubsections are generally quite short and topically relate to the subsections they fall within. So they would use Section Types and binder outline hierarchy for the first three levels of document structure, and then “Heading 4” styled text in the editor for the rest.
Yes, that’s the main trick for “fixing” all of our built-in formats. Honestly, I still have no clue why our built-in formats lack proper stylesheet wiring. I don’t really see the downside of having them, does anyone really strongly not want a heading outline? And meanwhile it makes everyone that does need them have to waste a bunch of time figuring out some of the more integrated feature sets in the compiler—like knowing how the compiler styles optionally override editor styles, and how to adjust Layouts, etc.
Something else to be aware of there is how some of our built-in formats have unorthodox multi-paragraph headings. That could create some awkward looking navigation if you added “Heading 1” to the “Chapter One” line—then what do you do about the “Folder Name” line? Much better to just have one line, with a visual break, that is all assigned to “Heading 1”. But there may be other better solutions for that problem as well—I don’t really know all that much about word processor usage, and what are best practices. Where I come from though, typing “Chapter One” into the document at all, like with a typewriter, never mind inserting raw whitespace characters to kludge multiline output is an absolute no-no. That all should be the job of the stylesheet, not the raw text content.
The other weird thing to look out for is the setting in the “New Pages” tab to “pad” the top of the page. That isn’t real padding, it’s going to insert a whole bunch of empty paragraphs to emulate formatted padding (which again should probably be a function of the stylesheet anyway). Purity of good practices aside, the problem is that this will cause each empty line to be added to the navigation outline. That is probably a bug.
If you mean that the compile Format can have its own stylesheet, then yes, that makes sense. It’s meant to compliment, or transform, style usage from the editor. A good example of that is how the stock styles in the editor look nothing like they should in Manuscript-Courier output. The compiler takes the styles used in the editor and transforms them to the correct output, and switching Formats will cause all of the styles to change their appearance accordingly. What you don’t supply in the Format’s stylesheet will be passed through from the project’s stylesheet verbatim.
So it’s a kind of flexibility you have, where maybe some styles aren’t meant to change depending upon the output (Emphasis, for example, may always just be italics). It also means that Scrivener, at its most basic usage, allows one to more simply use styles while writing with the intention of that being exactly what the document looks like.