I would recommend calling Knack.router.scene_view.render() to re-render the page with the latest rules applied.
Rendering previously hidden views after the page has already rendered will result in weird behavior like broken layout or views rendering at the bottom of the page instead of in the correct order. If you only want to hide already rendered views based on page rules, you can use the following:
Thank you for your answer.
Finally, I opted for this solution:
Knack.router.scene_view.render();
It’s a bit slow to render everything, but it’s simple, clean and definitely faster than a full page reload. Also, as you pointed out, it prevents any potential layout problems.
This opens the door to a new set of KTL features I had in mind for a while.