How to create a field that references a Views Block display in D8? In D7, using the blockreference contrib module, you could add a field to a node (say) that allowed the user to reference a block. When viewing the page the referenced block's rendered content would be included.

This was great for including widgety stuff on a per-page basis, especially when combined with the Paragraphs module.

I have a View which defines a number of Block displays. I want to reference a particular one from a node and I'm struggling to do this in D8.

When creating the reference field, I'm offered various things under the "References" optgroup, but none include Block. I tried "References » Other..."
which seemed to be the generic entity reference that I thought would work.

Next I'm asked what type of entity to reference, which is split between content and config. I suppose this is config since a view is config, even if its config that provides content (ouch my brain). Under Config I see block. Great! I want it to reference a block.

However, after selecting that I cannot seem to reference the block created by my view - switching the form display to select list to see what is available I see all sorts of stuff (some, like "primary admin actions" apparently repeated 4 times?!) but NOT the view's blocks.

The other option that looked relevant for "which entity to reference" is View. But if I do that I just get a link to the view's edit screen.

I've since found that if I place the block in the disabled section, then I am able to reference it.

So is there a better way to reference a block or do I have to do this odd thing of create a block » place as "disabled" » reference. Alternatively, is there an explanation why having to do things this really confusing way brings an important benefit to site building that I ought to understand?

Thanks in advance.
Things are confusing because that's how entity reference works. All those things are entities, so they are technically referencable. As you found, block are actual block placements, which is not what you want. And view doesn't allow to select the display, so for your case, that's also not what you want. Drupal 8 core simply can't do that without custom code or a module (yet).

You either need a contrib module like Viewfield, but that doesn't have an official 8.x release yet. The blue box points to the contrib tracker issue, which in turn points to https://www.drupal.org/node/2220929, which has a link to a github repository where someone did an initial port. If and how well that is working already, I can't say.

An approach that would require a bit of custom code would be to have a list field with a few options ( since you don't want to allow all views anyway..), and based on that, there needs to be a bit of code that loads and calls the view and displays the results.