Show either a node or a blocks page at frontpage
I agree, the block layout gets quite messy when you try to do this. Another option would be a separate twig template for the front page.

Create two new regions frontpage_auth and frontpage_anon and fill them with the blocks you want to show. Don't configure the visibility here. Just place the blocks.

Modify page.html.twig, so that {{ page.content }} is enclosed in a twig block maincontent:

{% block maincontent %}
  {{ page.content }}
{% endblock %}


Then create a new twig file for the front page

page--front.html.twig

{% extends "page.html.twig" %}

{% block maincontent %}

  {% if logged_in %}
    {{ page.frontpage_auth }}
  {% else %}
    {{ page.frontpage_anon }}
  {% endif %}

{% endblock %}


where you display one of the two regions dependent on the variable logged_in.

For the node you can use the Main page content block or you can put the node in a view and use this view as a block.