Aha! Solved it, so I'm going to answer my own question in case someone else runs into this.
The PHP must be compiled with the option ZIP to *really* have it "built-in". In the case of this OpenSUSE build, it is not, and must instead be installed using PECL. Initially the PECL install didn't seem to work, eg. `sudo pecl install zip`, until I realized that it needed the path too `sudo pecl install pecl/zip`, but then it worked.
Okay, so a bit more fiddling brought me to this solution which feels somewhat ‘hacky’ to me, so do feel free to suggest improvements.
I made special templates for those category-pages that were just placeholders for deeper content and contained no content of their own, eg. ‘Products’ and ‘News’ in the top level, ‘Apple’, ‘Banana’, and ‘Orange’ in the secondary level.
For the category-pages that needed three levels to get to an actual content page I made a template with:
<?php
$session->redirect($page->child->child->url);
… and then assigned ‘Products’ and ‘News’ to this template.
And for the the category-pages that needed two levels to get to an actual content page I made a template with:
<?php
$session->redirect($page->child->url);
… and then assigned ‘Apple’, ‘Banana’, and ‘Orange’ to this template.
This works! Albeit with the annoyance of these redirects loading a page for each ‘step’ down to the final content-page. This is why I call it ‘hacky’.