Почему абсолютно позиционированный псевдоэлемент вмешивается в расчет space-between?
А с чего вы взяли что он вмешивается куда-то? Красный квадрат просто перекрывает часть синего прямоугольника. Сделайте z-index последнему элементу и увидите
Не изящно, но работает<div class="wrapper">
  <div class="kastyl">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div> 
</div>.wrapper {
  position: relative;
  width: 400px;
  border: 1em solid green;
  box-sizing: border-box;
  margin-bottom: 1em;
}

.kastyl {
  display: flex;
  justify-content: space-between;
  width: 100%;
}