In reply to Nick.

Nick, you are right that using a plugin has no bearing on what you are talking about. When I mentioned using a plugin it was my clumsy way of trying to explain what was going around in my head.

When you say that gutenberg combines the content with the design, I don't see that as entirely true, it only partly describes Gutenberg blocks.

It's true there are blocks that are content and design combined such as;
Paragraph
Heading
Image
List
etc..

There are also blocks that are dynamic combined with design such as;
Site Logo
Site Title
Post Date
Post Author
etc.. way too many to mention here.

What I'm trying to say is that when writing a post, you wouldn't manually add the name of the post author, or the post date using a paragraph block for example.
These dynamic blocks exist so that they can be used in the template that is powering the posts. These blocks can be designed in any way you want; change the color, background, size, spacing etc. but you dont't manually write the content of the block each time you use it in a post. This is where the templates come in, allowing you to move these dynamic blocks around, add or remove these blocks, and edit the design of these blocks just how you like.
A separate issue, but kind of the same is that there needs to be some way of distinguishing dynamic blocks from content blocks in the block inserter, as it is currently not immediately clear which is which. I'm sure there are many discussions in github about this.

Likewise with the real estate - it's not a silly example - is a good example of how things initially seem confusing. I didn't see the point of the block system to begin with, but as I worked with it more there was a point when it suddenly clicked and became clear to me the potential of Gutenberg blocks.

With the point about the CSS in that particular block pattern, there really is no way to tell whether the CSS is hard coded (or hand coded) by looking at the html code. The resulting code will be identical whether the author used the block tools, or wrote it by hand (assuming they didn't make a mistake when hand coding it). There may be clues that a pattern could have been hand coded such as ordering the style args differently to the order that the block tools would output, but the order doesn't matter as it will still work just as if the pattern had been created fully with the block tools.