Hast Du das CSS irgend wie durch einen Übersetzer gejagt? "Flex-Richtung" etc. gibt es natürlich nicht.
Der Grund dafür, dass das "justify-content" die Buttons nicht trennt, ist, dass es nur greift, wenn freier Raum vorhanden ist. Weil in dem div.buttons die Elemente direkt unter einander gepackt werden, ist das jedoch nicht der Fall. Weist Du diesem div eine Höhe zu, funktioniert das "space-between" sofort: