Twig overriding parent variables
It's not quite the approach you had in mind (modifying the classes variable) but I would recommend you do as Bartik does and work with the Attribute object instead:

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

{% set attributes = attributes.addClass('new-class-goes-here') %}

{% block content %}
  {% if site_name %}
    &lt;div class="site-name"&gt;
     &lt;a href="{{ path('&lt;front&gt;') }}" title="{{ 'Home'|t }}" rel="home"&gt;{{ site_name }}&lt;/a&gt;
   &lt;/div&gt;
  {% endif %}
  {% if site_slogan %}
   &lt;div class="site-slogan"&gt;{{ site_slogan }}&lt;/div&gt;
  {% endif %}
{% endblock %}


I think the key thing here is that the variable you are modifying is initialized (and used) outside of the twig block. If the variable were initialized inside the twig block then I can see needing to override it inside the child templates's twig block as well.

More on working with Attributes in templates here: https://www.drupal.org/node/2513632